1. Introduction

This document explores the DL2_preprocessed dataset to gain an initial understanding of the data and investigate patterns in deliberate ignorance (DI) across scenarios, motives, and age groups.

2. Data Preparation

2.1 Load Data

dat <- read_csv("dl2_data_processed.csv")
## Rows: 33930 Columns: 42
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (8): ResponseId, Age_group, Prolific_ID, Scenario_Code, Want_to_know, e...
## dbl (34): Age, Duration..in.seconds., expectation, valence, arousal, sadness...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

2.2 Initial Cleaning

Exclude participants with missing DI Ratings.

dat_short <- dat %>%
filter(!is.na(want_to_know_bin))

2.3. Include categories in dat_short

dat_short <- dat_short %>%
  mutate(
    Scenario_Category = case_when(
      Scenario_Content %in% c(
        "hiv_test", "gen_risk_alzheimer", "gen_risk_huntington", 
        "life_expect_huntington", "spread_metast_cancer", "risk_anaesthesia",
        "nutritional_deficiencies", "calories_food", "sex_of_child"
      ) ~ "Health",
      
      Scenario_Content %in% c(
        "partner_cheating", "partner_prev_relationship",
        "converts",
        "friend_polit_opin", "friend_sex_life"
      ) ~ "Social",
      
      Scenario_Content %in% c(
        "colleague_salary", "bank_balance",
        "altern_recent_purchase", "friend_finance_problems"
      ) ~ "Finances",
      
      Scenario_Content %in% c(
        "success_chance_new_comp", "gender_job_applicant", "teaching_eval"
      ) ~ "Career",
      
      Scenario_Content %in% c(
        "hunger_crisis", "war", "holocaust_movie",
        "child_abuse", "homeless_ppl"
      ) ~ "Society",
      
      Scenario_Content %in% c(
        "Kardashian_home", "ending_GoT"
      ) ~ "Entertainment",
      
      Scenario_Content %in% c(
        "global_warming", "factory_farming"
      ) ~ "Environment",
    )
  )

2.4. Create Wide Format

motive_vars <- c("expectation","valence","arousal", "sadness","anger","fear", 
                  "jealousy","envy","disgust","regret","feelinggood","relief",
                  "happiness","complexity","relevance","reliability","relationships",
                  "conflict","politeness","notlying","unsureresp.","exclusion",
                  "self.percept.","actiongeneral","actionnow","disadvantage",
                  "goalinterfer","socialobligat","legalobligat","surprise","fairness")


data_wide <- dat_short %>%
  select(ResponseId, Age, Age_group, Scenario_Code, all_of(motive_vars)) %>%
  # long -> wide
  pivot_wider(
    id_cols = c(ResponseId, Age, Age_group), 
    names_from = Scenario_Code,
    values_from = all_of(motive_vars),
    names_sep = "_"
  )

3. Participants Overview

3.1. Participants in total

nrow(data_wide)
## [1] 1090

3.2. Participants count young and old

data_wide %>%
  dplyr::group_by(Age_group) %>%
  dplyr::summarise(count = n())
## # A tibble: 3 × 2
##   Age_group count
##   <chr>     <int>
## 1 older       543
## 2 younger     522
## 3 <NA>         25

3.3. Age range

range(data_wide$Age, na.rm = TRUE)
## [1] 20 70

Plot Age range

hist(data_wide$Age,
     main = "Age range",
     xlab = "Age",
     ylab = "Frequency",
     col = "skyblue",
     border = "white")

3.4. Ratings per participant

Number of DI ratings per participant

ratings_count_person <- dat_short %>%
  dplyr::filter(want_to_know_bin %in% c(0, 1)) %>%  
  dplyr::group_by(ResponseId) %>%
  dplyr::summarise(
    n_valid_ratings = n(),   
    .groups = "drop"
  )

Number of Motive Ratings per Participant

rating_cols <- setdiff(names(data_wide), c("ResponseId", "Age_group"))

motives_count_person <- data_wide %>%
  mutate(
    n_ratings_filled = rowSums(
      select(., all_of(rating_cols)) != -99 & !is.na(select(., all_of(rating_cols)))
    )
  ) %>%
  select(ResponseId, n_ratings_filled)

### Combine Both Counts
ratings_combined <- merge(
  ratings_count_person,
  motives_count_person,
  by = "ResponseId"
)

ratings_combined <- ratings_combined %>%
  mutate(avg_ratings_per_scenario = n_ratings_filled / n_valid_ratings)

Overall mean rating per scenario

mean(ratings_combined$avg_ratings_per_scenario, na.rm = TRUE)
## [1] 28.19067

3.5. Number of ratings by scenario and age group

dat_short <- dat_short %>%
  mutate(Age_group = ifelse(is.na(Age_group), "unknown", Age_group))

scenario_participants <- dat_short %>%
  dplyr::group_by(Scenario_Content, Age_group) %>%
  dplyr::summarise(n_ratings = n(), .groups = "drop")

scenario_participants
## # A tibble: 81 × 3
##    Scenario_Content       Age_group n_ratings
##    <chr>                  <chr>         <int>
##  1 Kardashian_home        older            60
##  2 Kardashian_home        unknown           1
##  3 Kardashian_home        younger          48
##  4 altern_recent_purchase older            50
##  5 altern_recent_purchase unknown           1
##  6 altern_recent_purchase younger          55
##  7 bank_balance           older            55
##  8 bank_balance           younger          53
##  9 calories_food          older            54
## 10 calories_food          unknown           1
## # ℹ 71 more rows

4. Deliberative Ignorance

Responses Want to Know / Not Want to Know (DI)

4.1 Overall proportion of DI across all scenarios

overall_DI <- dat_short %>%
  dplyr::filter(!is.na(want_to_know_bin)) %>%
  dplyr::summarise(
    total_responses = n(),
    total_DI = sum(want_to_know_bin == 1),
    proportion_DI = mean(want_to_know_bin == 1)
  )

overall_DI 
## # A tibble: 1 × 3
##   total_responses total_DI proportion_DI
##             <int>    <int>         <dbl>
## 1            3233      950         0.294

4.2. DI Ratings by scenario

How many participants in general answered the scenario

scenario_counts <- dat_short %>%
  dplyr::group_by(Scenario_Content) %>%
  dplyr::summarise(n_ratings = n(), .groups = "drop")

scenario_counts
## # A tibble: 30 × 2
##    Scenario_Content        n_ratings
##    <chr>                       <int>
##  1 Kardashian_home               109
##  2 altern_recent_purchase        106
##  3 bank_balance                  108
##  4 calories_food                 106
##  5 child_abuse                   109
##  6 colleague_salary              103
##  7 converts                      104
##  8 ending_GoT                    107
##  9 factory_farming               106
## 10 friend_finance_problems       105
## # ℹ 20 more rows

Count of want to know = 1 (DI) per scenario

di_scenario <- dat_short %>% 
  dplyr::group_by(Scenario_Content, want_to_know_bin) %>% 
  dplyr::summarise(n_ratings = n(),.groups = "drop")

Plot DI responses by scenario

4.3. Proportion DI vs. no DI by scenario

di_scenario_full <- dat_short %>% 
  dplyr::group_by(Scenario_Content) %>%
  dplyr::summarise(
    n_0  = sum(want_to_know_bin == 0, na.rm = TRUE),
    n_di  = sum(want_to_know_bin == 1, na.rm = TRUE),
    total = n_0 + n_di,
    prop_1 = n_di / total,
    .groups = "drop"
  )%>%
  dplyr::arrange(desc(prop_1))

di_scenario_full <- di_scenario_full %>%
  mutate(Scenario_Content = factor(Scenario_Content, levels = Scenario_Content[order(prop_1)]))

Plot proportion DI vs. no DI by scenario

ggplot(di_scenario_full, aes(x = Scenario_Content, y = prop_1)) +
  geom_col(fill = "#E69F00") +
  coord_flip() +
  labs(
    title = "Proportion of DI per Scenario",
    x = "Scenario",
    y = "Proportion of DI to total"
  ) +
  theme_minimal(base_size = 14)

4.4. Count DI vs. no DI by category

di_category <- dat_short %>% 
  dplyr::group_by(Scenario_Category, want_to_know_bin) %>% 
  dplyr::summarise(n_ratings = n(),.groups = "drop")

Plot DI count by category

ggplot(di_category, aes(x = Scenario_Category, y = n_ratings, fill = factor(want_to_know_bin))) +
  geom_bar(stat = "identity", position = "dodge") +
  scale_fill_manual(values = c("0" = "skyblue", "1" = "#E69F00"),
                    name = "Want to know?",
                    labels = c("0 = want to know", "1 = do NOT want to know (DI)")) +
  labs(
    title = "Want-to-Know Responses by Category",
    x = "Category",
    y = "Number of Ratings"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.title = element_text(face = "bold", hjust = 0.5)
  )

4.5.Proportion DI by category

di_category_full <- dat_short %>% 
  dplyr::group_by(Scenario_Category) %>%
  dplyr::summarise(
    n_0  = sum(want_to_know_bin == 0, na.rm = TRUE),
    n_di  = sum(want_to_know_bin == 1, na.rm = TRUE),
    total = n_0 + n_di,
    prop_1 = n_di / total,
    .groups = "drop"
  )%>%
  dplyr::arrange(desc(prop_1))

di_category_full <- di_category_full %>%
  mutate(Scenario_Category = factor(Scenario_Category, levels = Scenario_Category[order(prop_1)]))

Plot proportion DI vs. no DI by category

ggplot(di_category_full, aes(x = Scenario_Category, y = prop_1)) +
  geom_col(fill = "#E69F00") +
  coord_flip() +
  labs(
    title = "Proportion of DI per Category",
    x = "Category",
    y = "Proportion of DI to total"
  ) +
  theme_minimal(base_size = 14)

5. Deliberative Ignorance — young vs. old

Decisions Want to Know / Not to Know (DI)

5.1. Difference overall proportion – young vs. old

overall_DI_age <- dat_short %>%
  dplyr::filter(!is.na(want_to_know_bin)) %>%
  dplyr::group_by(Age_group) %>%        
  dplyr::summarise(
    total_responses = n(),
    total_DI = sum(want_to_know_bin == 1),
    proportion_DI = mean(want_to_know_bin == 1),
    .groups = "drop"
  )
overall_DI_age
## # A tibble: 3 × 4
##   Age_group total_responses total_DI proportion_DI
##   <chr>               <int>    <int>         <dbl>
## 1 older                1629      556         0.341
## 2 unknown                39       10         0.256
## 3 younger              1565      384         0.245

5.2. Differences DI by scenario – young vs. old

positive: more young participants chose “not want to know”

scenario_age_prop <- dat_short %>%
  dplyr::group_by(Scenario_Content, Age_group) %>%
  dplyr::summarise(
    total_participants = n(),
    n_want_to_know = sum(want_to_know_bin == 1, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  dplyr::mutate(prop_want_to_know = n_want_to_know / total_participants) %>%
  dplyr::select(-n_want_to_know, -total_participants) %>%
  pivot_wider(
    names_from = Age_group,
    values_from = prop_want_to_know,
    values_fill = 0
  ) %>%
  mutate(diff_prop_young_old = younger - older) %>%
  arrange(desc(diff_prop_young_old)) 

scenario_age_prop 
## # A tibble: 30 × 5
##    Scenario_Content          older unknown younger diff_prop_young_old
##    <chr>                     <dbl>   <dbl>   <dbl>               <dbl>
##  1 gender_job_applicant     0.472    0      0.571              0.0997 
##  2 homeless_ppl             0.386    0      0.472              0.0857 
##  3 nutritional_deficiencies 0        0      0.0769             0.0769 
##  4 success_chance_new_comp  0.0377   0      0.109              0.0714 
##  5 bank_balance             0.109    0      0.170              0.0607 
##  6 converts                 0.0577   0      0.0962             0.0385 
##  7 spread_metast_cancer     0.0690   0      0.0980             0.0291 
##  8 teaching_eval            0.0577   0      0.0833             0.0256 
##  9 holocaust_movie          0.305    0.333  0.319              0.0141 
## 10 ending_GoT               0.903    0      0.909              0.00587
## # ℹ 20 more rows

Plot Differences DI by scenario and age group

scenario_age_long <- scenario_age_prop %>%
  pivot_longer(cols = c(younger, older),
               names_to = "Age_group",
               values_to = "prop_want_to_know") %>%
  group_by(Scenario_Content) %>%
  mutate(mean_prop = mean(prop_want_to_know, na.rm = TRUE)) %>%
  ungroup()

ggplot(scenario_age_long,
       aes(x = reorder(Scenario_Content, mean_prop),
           y = prop_want_to_know,
           fill = Age_group)) +
  geom_col(position = "dodge") +
  scale_fill_manual(values = c("older" = "#4CAF50", "younger" = "#2196F3"),
                    labels = c("older", "younger")) +
  labs(
    title = "DI ratings by scenario and age group",
    x = "Scenario",
    y = "Proportion DI",
    fill = "Age group"
  ) +
  coord_flip() +
  theme_minimal(base_size = 13)

5.3. Differences in DI by category – young vs. old

positive: more young participants chose “not want to know”

category_age_prop <- dat_short %>%
  dplyr::group_by(Scenario_Category, Age_group) %>%
  dplyr::summarise(
    total_participants = n(),
    n_want_to_know = sum(want_to_know_bin == 1, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  dplyr::mutate(prop_want_to_know = n_want_to_know / total_participants) %>%
  dplyr::select(-n_want_to_know, -total_participants) %>%
  pivot_wider(
    names_from = Age_group,
    values_from = prop_want_to_know,
    values_fill = 0
  ) %>%
  mutate(diff_prop_young_old = younger - older) %>%
  arrange(desc(diff_prop_young_old)) 

category_age_prop
## # A tibble: 7 × 5
##   Scenario_Category older unknown younger diff_prop_young_old
##   <chr>             <dbl>   <dbl>   <dbl>               <dbl>
## 1 Career            0.190   0       0.264              0.0743
## 2 Environment       0.230   0.5     0.194             -0.0362
## 3 Health            0.192   0.188   0.121             -0.0711
## 4 Society           0.330   0.143   0.244             -0.0853
## 5 Entertainment     0.902   0.5     0.804             -0.0973
## 6 Finances          0.422   0       0.319             -0.102 
## 7 Social            0.445   0.571   0.221             -0.223

Plot Differences DI by category and age group

scenario_age_long_cat <- category_age_prop %>%
  pivot_longer(cols = c(younger, older),
               names_to = "Age_group",
               values_to = "prop_want_to_know") %>%
  group_by(Scenario_Category) %>%
  mutate(mean_prop = mean(prop_want_to_know, na.rm = TRUE)) %>%
  ungroup()

ggplot(scenario_age_long_cat,
       aes(x = reorder(Scenario_Category, mean_prop),
           y = prop_want_to_know,
           fill = Age_group)) +
  geom_col(position = "dodge") +
  scale_fill_manual(values = c("older" = "#4CAF50", "younger" = "#2196F3"),
                    labels = c("older", "younger")) +
  labs(
    title = "DI ratings by category and age group",
    x = "Category",
    y = "Response Not want to know (DI)",
    fill = "Age group"
  ) +
  coord_flip() +
  theme_minimal(base_size = 13)

6.Ratings of Motives

6.1. Overall highly rated motives

overall_motives <- dat_short %>%
  summarise(across(all_of(motive_vars), ~ mean(.x[.x != -99], na.rm = TRUE))) %>%
  pivot_longer(cols = everything(), names_to = "motive", values_to = "mean_rating") %>%
  arrange(desc(mean_rating))

overall_motives
## # A tibble: 31 × 2
##    motive        mean_rating
##    <chr>               <dbl>
##  1 reliability          4.21
##  2 actionnow            3.87
##  3 relevance            3.84
##  4 actiongeneral        3.77
##  5 socialobligat        3.34
##  6 fear                 3.33
##  7 arousal              3.28
##  8 valence              3.21
##  9 unsureresp.          3.16
## 10 self.percept.        3.11
## # ℹ 21 more rows

6.2. Mean Ratings of motives by scenario

ratings_per_motive_mean <- dat_short %>%
  dplyr::group_by(Scenario_Content) %>%
  dplyr::summarise(
    across(
      all_of(motive_vars),
      ~ mean(.x[.x != -99], na.rm = TRUE),
      .names = "mean_{.col}"
    ),
    .groups = "drop"
  )

Plot: Heatmap mean ratings of motives by scenario

ratings_long <- ratings_per_motive_mean %>%
  pivot_longer(
    cols = starts_with("mean_"),
    names_to = "Motive",
    values_to = "MeanRating"
  )


ggplot(ratings_long, aes(x = Motive, y = Scenario_Content, fill = MeanRating)) +
  geom_tile() +
  scale_fill_gradient(low = "white", high = "steelblue") +
  labs(
    title = "Mean Ratings of Motives per Scenario",
    x = "Motive",
    y = "Scenario",
    fill = "Mean Rating"
  ) +
  theme_minimal(base_size = 12) +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))

6.3. Top 3 highest average rated motives by scenario

top3_motives <- dat_short %>%
  dplyr::group_by(Scenario_Content) %>%
  dplyr::summarise(across(all_of(motive_vars),
                   ~ mean(.x[.x != -99], na.rm = TRUE),  
                   .names = "avg_{.col}"),
            .groups = "drop") %>%
  pivot_longer(
    cols = starts_with("avg_"),
    names_to = "motive",
    values_to = "avg_rating"
  ) %>%
  mutate(motive = sub("^avg_", "", motive)) %>%
  dplyr::group_by(Scenario_Content) %>%
  slice_max(avg_rating, n = 3, with_ties = FALSE) %>% 
  arrange(Scenario_Content, desc(avg_rating)) %>%
  ungroup()

Table: Top 3 average motives per scenario

top3_motives_table <- dat_short %>%
  dplyr::group_by(Scenario_Content) %>%
  dplyr::summarise(
    across(
      all_of(motive_vars),
      ~ mean(.x[.x != -99], na.rm = TRUE),  
      .names = "avg_{.col}"
    ),
    .groups = "drop"
  ) %>%
  pivot_longer(
    cols = starts_with("avg_"),
    names_to = "motive",
    values_to = "avg_rating"
  ) %>%
  mutate(motive = sub("^avg_", "", motive)) %>%
  dplyr::group_by(Scenario_Content) %>%
  slice_max(avg_rating, n = 3, with_ties = FALSE) %>%
  arrange(Scenario_Content, desc(avg_rating)) %>%
  mutate(rank = row_number()) %>%
  pivot_wider(
    names_from = rank,
    values_from = c(motive, avg_rating),
    names_glue = "Top{rank}_{.value}"
  ) %>%
  arrange(Scenario_Content)

knitr::kable(top3_motives_table, digits = 2, caption = "Top 3 Motives (Mean Ratings) per Scenario")
Top 3 Motives (Mean Ratings) per Scenario
Scenario_Content Top1_motive Top2_motive Top3_motive Top1_avg_rating Top2_avg_rating Top3_avg_rating
Kardashian_home relevance disgust reliability 2.43 2.31 2.21
altern_recent_purchase actionnow regret relevance 3.96 3.76 3.60
bank_balance actionnow relevance reliability 4.67 4.62 4.54
calories_food actionnow reliability relevance 4.71 4.63 4.33
child_abuse reliability socialobligat actiongeneral 4.57 3.97 3.83
colleague_salary relevance reliability conflict 4.20 3.92 3.91
converts reliability legalobligat socialobligat 4.25 4.20 4.17
ending_GoT surprise regret arousal 4.54 4.13 3.31
factory_farming reliability disgust socialobligat 4.28 3.92 3.88
friend_finance_problems actiongeneral unsureresp. socialobligat 3.70 3.62 3.50
friend_polit_opin relationships conflict politeness 3.81 3.79 3.54
friend_sex_life unsureresp. regret relationships 3.60 3.50 3.46
gen_risk_alzheimer relevance reliability actiongeneral 4.93 4.61 4.42
gen_risk_huntington relevance reliability actiongeneral 5.19 4.66 4.52
gender_job_applicant fairness reliability actionnow 3.93 3.61 3.51
global_warming reliability actionnow socialobligat 4.79 4.52 4.26
hiv_test relevance reliability actionnow 5.06 4.99 4.70
holocaust_movie reliability arousal sadness 4.24 4.04 3.81
homeless_ppl socialobligat reliability sadness 3.92 3.72 3.50
hunger_crisis reliability socialobligat valence 4.45 4.08 3.96
life_expect_huntington relevance goalinterfer reliability 5.08 4.69 4.57
nutritional_deficiencies reliability relevance actionnow 5.00 4.96 4.91
partner_cheating reliability relevance relationships 4.91 4.50 4.29
partner_prev_relationship regret relationships reliability 3.84 3.83 3.66
risk_anaesthesia relevance reliability actionnow 4.78 4.56 4.54
sex_of_child reliability feelinggood happiness 4.01 3.86 3.81
spread_metast_cancer relevance actionnow reliability 4.99 4.94 4.83
success_chance_new_comp reliability actionnow relevance 5.16 5.07 4.85
teaching_eval relevance actionnow actiongeneral 5.01 4.83 4.63
war reliability actionnow anger 4.47 3.51 3.38

Plot Top 3 Motives by Scenario

ggplot(top3_motives, aes(x = motive, y = Scenario_Content, fill = avg_rating)) +
  geom_tile(color = "white") +
  scale_fill_gradient(low = "white", high = "steelblue") +
  labs(
    title = "Top 3 Motives by Scenario",
    x = "Motive",
    y = "Scenario",
    fill = "Mean Rating"
  ) +
  theme_minimal(base_size = 12) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

6.4. Mean Ratings of motives by category

ratings_per_motive_mean_cat <- dat_short %>%
  dplyr::group_by(Scenario_Category) %>%
  dplyr::summarise(
    across(
      all_of(motive_vars),
      ~ mean(.x[.x != -99], na.rm = TRUE),
      .names = "mean_{.col}"
    ),
    .groups = "drop"
  )

ratings_per_motive_mean_cat
## # A tibble: 7 × 32
##   Scenario_Category mean_expectation mean_valence mean_arousal mean_sadness
##   <chr>                        <dbl>        <dbl>        <dbl>        <dbl>
## 1 Career                        2.87         2.72         2.68         2.46
## 2 Entertainment                 2.32         2.5          2.6          2.29
## 3 Environment                   3.07         3.23         3.21         3.12
## 4 Finances                      2.87         3.25         2.85         2.95
## 5 Health                        3.34         3.32         3.55         3.23
## 6 Social                        3.23         3.20         3.45         3.10
## 7 Society                       3.16         3.50         3.57         3.60
## # ℹ 27 more variables: mean_anger <dbl>, mean_fear <dbl>, mean_jealousy <dbl>,
## #   mean_envy <dbl>, mean_disgust <dbl>, mean_regret <dbl>,
## #   mean_feelinggood <dbl>, mean_relief <dbl>, mean_happiness <dbl>,
## #   mean_complexity <dbl>, mean_relevance <dbl>, mean_reliability <dbl>,
## #   mean_relationships <dbl>, mean_conflict <dbl>, mean_politeness <dbl>,
## #   mean_notlying <dbl>, mean_unsureresp. <dbl>, mean_exclusion <dbl>,
## #   mean_self.percept. <dbl>, mean_actiongeneral <dbl>, mean_actionnow <dbl>, …

Plot: Heatmap mean ratings of motives by category

ratings_long_cat <- ratings_per_motive_mean_cat %>%
  pivot_longer(
    cols = starts_with("mean_"),
    names_to = "Motive",
    values_to = "MeanRating"
  )


ggplot(ratings_long_cat, aes(x = Motive, y = Scenario_Category, fill = MeanRating)) +
  geom_tile() +
  scale_fill_gradient(low = "white", high = "steelblue") +
  labs(
    title = "Mean Ratings of Motives by Category",
    x = "Motive",
    y = "Category",
    fill = "Mean Rating"
  ) +
  theme_minimal(base_size = 12) +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))

6.5. Top 3 highest average rated motives by category

top3_motives_cat <- dat_short %>%
  dplyr::group_by(Scenario_Category) %>%
  dplyr::summarise(across(all_of(motive_vars),
                          ~ mean(.x[.x != -99], na.rm = TRUE),
                          .names = "avg_{.col}"),
                   .groups = "drop") %>%
  pivot_longer(
    cols = starts_with("avg_"),
    names_to = "motive",
    values_to = "avg_rating"
  ) %>%
  mutate(motive = sub("^avg_", "", motive)) %>%
  dplyr::group_by(Scenario_Category) %>%
  slice_max(avg_rating, n = 3, with_ties = FALSE) %>% 
  arrange(Scenario_Category, desc(avg_rating)) %>%
  ungroup()

Table: Top3 motives by category

top3_motives_cat_table <- dat_short %>%
  dplyr::group_by(Scenario_Category) %>%
  dplyr::summarise(
    across(
      all_of(motive_vars),
      ~ mean(.x[.x != -99], na.rm = TRUE),  
      .names = "avg_{.col}"
    ),
    .groups = "drop"
  ) %>%
  pivot_longer(
    cols = starts_with("avg_"),
    names_to = "motive",
    values_to = "avg_rating"
  ) %>%
  mutate(motive = sub("^avg_", "", motive)) %>%
  dplyr::group_by(Scenario_Category) %>%
  slice_max(avg_rating, n = 3, with_ties = FALSE) %>%
  arrange(Scenario_Category, desc(avg_rating)) %>%
  mutate(rank = row_number()) %>%
  pivot_wider(
    names_from = rank,
    values_from = c(motive, avg_rating),
    names_glue = "Top{rank}_{.value}"
  ) %>%
  arrange(Scenario_Category)


knitr::kable(top3_motives_cat_table, digits = 2, caption = "Top 3 Motives (Mean Ratings) per Category")
Top 3 Motives (Mean Ratings) per Category
Scenario_Category Top1_motive Top2_motive Top3_motive Top1_avg_rating Top2_avg_rating Top3_avg_rating
Career actionnow reliability actiongeneral 4.48 4.42 4.22
Entertainment surprise regret reliability 3.30 3.05 2.73
Environment reliability actionnow socialobligat 4.54 4.11 4.08
Finances reliability actionnow actiongeneral 3.88 3.80 3.76
Health relevance reliability actionnow 4.79 4.65 4.52
Social relationships reliability conflict 3.85 3.85 3.71
Society reliability socialobligat sadness 4.29 3.68 3.60

Plot Top 3 motives by category

ggplot(top3_motives_cat, aes(x = motive, y = Scenario_Category, fill = avg_rating)) +
  geom_tile(color = "white") +
  scale_fill_gradient(low = "white", high = "steelblue") +
  labs(
    title = "Top 3 Motives by Category",
    x = "Motive",
    y = "Category",
    fill = "Mean Rating"
  ) +
  theme_minimal(base_size = 12) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

7. Ratings of Motives – young vs. old

7.1. Overall highly rated motives – young vs. old

overall_motives_by_age <- dat_short %>%
  dplyr::filter(Age_group %in% c("younger", "older")) %>%   
  dplyr::group_by(Age_group) %>%
  dplyr::summarise(
    across(all_of(motive_vars),
           ~ mean(.x[.x != -99], na.rm = TRUE),
           .names = "avg_{.col}")
  ) %>%
  tidyr::pivot_longer(
    cols = starts_with("avg_"),
    names_to = "motive",
    values_to = "mean_rating"
  ) %>%
  dplyr::mutate(motive = sub("^avg_", "", motive)) %>%
  dplyr::arrange(Age_group, desc(mean_rating))

overall_motives_by_age
## # A tibble: 62 × 3
##    Age_group motive        mean_rating
##    <chr>     <chr>               <dbl>
##  1 older     reliability          4.39
##  2 older     actionnow            3.83
##  3 older     actiongeneral        3.78
##  4 older     relevance            3.73
##  5 older     socialobligat        3.26
##  6 older     fear                 3.24
##  7 older     regret               3.16
##  8 older     valence              3.15
##  9 older     unsureresp.          3.14
## 10 older     arousal              3.13
## # ℹ 52 more rows

Plot Overall motive ratings by age group

ggplot(overall_motives_by_age, aes(x = reorder(motive, mean_rating), 
                                   y = mean_rating, 
                                   fill = Age_group)) +
  geom_col(position = position_dodge(width = 0.8)) +
  coord_flip() +
  scale_fill_manual(values = c("older" = "#4CAF50", "younger" = "#2196F3"),
                    labels = c("older", "younger")) +
  labs(
    title = "Overall Motive Ratings by Age Group and Scenario",
    x = "Motive",
    y = "Average Rating",
    fill = "Age Group"
  ) +
  theme_minimal(base_size = 12)

7.2. Top 3 motives by scenario - young vs. old

top3_motives_by_age <- dat_short %>%
  dplyr::filter(Age_group %in% c("younger", "older")) %>%  
  dplyr::group_by(Scenario_Content, Age_group) %>%
  dplyr::summarise(
    across(all_of(motive_vars),
           ~ mean(.x[.x != -99], na.rm = TRUE),
           .names = "avg_{.col}"),
    .groups = "drop"
  ) %>%
  tidyr::pivot_longer(
    cols = starts_with("avg_"),
    names_to = "motive",
    values_to = "avg_rating"
  ) %>%
  dplyr::mutate(motive = sub("^avg_", "", motive)) %>%
  dplyr::group_by(Scenario_Content, Age_group) %>%
  dplyr::slice_max(avg_rating, n = 3, with_ties = FALSE) %>%
  dplyr::arrange(Scenario_Content, Age_group, desc(avg_rating)) %>%
  dplyr::ungroup()

top3_motives_by_age 
## # A tibble: 180 × 4
##    Scenario_Content       Age_group motive        avg_rating
##    <chr>                  <chr>     <chr>              <dbl>
##  1 Kardashian_home        older     reliability         2.08
##  2 Kardashian_home        older     disgust             2   
##  3 Kardashian_home        older     anger               1.77
##  4 Kardashian_home        younger   relevance           3.24
##  5 Kardashian_home        younger   self.percept.       2.89
##  6 Kardashian_home        younger   envy                2.83
##  7 altern_recent_purchase older     regret              3.82
##  8 altern_recent_purchase older     actionnow           3.72
##  9 altern_recent_purchase older     reliability         3.69
## 10 altern_recent_purchase younger   actionnow           4.15
## # ℹ 170 more rows

7.3. Top 3 motives by category and age group

top3_motives_by_age_cat <- dat_short %>%
  dplyr::filter(Age_group %in% c("younger", "older")) %>% 
  dplyr::group_by(Scenario_Category, Age_group) %>%
  dplyr::summarise(
    across(all_of(motive_vars),
           ~ mean(.x[.x != -99], na.rm = TRUE),
           .names = "avg_{.col}"),
    .groups = "drop"
  ) %>%
  tidyr::pivot_longer(
    cols = starts_with("avg_"),
    names_to = "motive",
    values_to = "avg_rating"
  ) %>%
  dplyr::mutate(motive = sub("^avg_", "", motive)) %>%
  dplyr::group_by(Scenario_Category, Age_group) %>%
  dplyr::slice_max(avg_rating, n = 3, with_ties = FALSE) %>%
  dplyr::arrange(Scenario_Category, Age_group, desc(avg_rating)) %>%
  dplyr::ungroup()

top3_motives_by_age_cat
## # A tibble: 42 × 4
##    Scenario_Category Age_group motive        avg_rating
##    <chr>             <chr>     <chr>              <dbl>
##  1 Career            older     reliability         4.77
##  2 Career            older     actionnow           4.52
##  3 Career            older     actiongeneral       4.46
##  4 Career            younger   actionnow           4.44
##  5 Career            younger   relevance           4.21
##  6 Career            younger   reliability         4.05
##  7 Entertainment     older     surprise            3.06
##  8 Entertainment     older     reliability         2.79
##  9 Entertainment     older     regret              2.79
## 10 Entertainment     younger   surprise            3.62
## # ℹ 32 more rows

Plot Top 3 Motives by category and age group

ggplot(top3_motives_by_age_cat,
       aes(x = reorder(motive, avg_rating), y = avg_rating, fill = Age_group)) +
  geom_col(position = "dodge") +
  facet_wrap(~ Scenario_Category, scales = "free_x", ncol = 5) +
  coord_flip() +
  scale_fill_manual(values = c("older" = "#4CAF50", "younger" = "#2196F3"),
                    labels = c("older", "younger")) +
  labs(
    title = "Top 3 Motives by Category and Age Group",
    x = "Motive",
    y = "Mean Rating",
    fill = "Age Group"
  ) +
  theme_minimal(base_size = 12)

Top 3 motives DI vs. no DI by across age

top3_motives_by_age_DI <- dat_short %>%
  dplyr::filter(Age_group %in% c("younger", "older")) %>%  
  dplyr::group_by(want_to_know_bin, Age_group) %>%
  dplyr::summarise(
    across(all_of(motive_vars),
           ~ mean(.x[.x != -99], na.rm = TRUE),
           .names = "avg_{.col}"),
    .groups = "drop"
  ) %>%
  tidyr::pivot_longer(
    cols = starts_with("avg_"),
    names_to = "motive",
    values_to = "avg_rating"
  ) %>%
  dplyr::mutate(motive = sub("^avg_", "", motive)) %>%
  dplyr::group_by(want_to_know_bin, Age_group) %>%
  dplyr::slice_max(avg_rating, n = 3, with_ties = FALSE) %>%
  dplyr::arrange(want_to_know_bin, Age_group, desc(avg_rating)) %>%
  dplyr::ungroup()

top3_motives_by_age_DI
## # A tibble: 12 × 4
##    want_to_know_bin Age_group motive        avg_rating
##               <dbl> <chr>     <chr>              <dbl>
##  1                0 older     reliability         4.87
##  2                0 older     actionnow           4.38
##  3                0 older     actiongeneral       4.28
##  4                0 younger   reliability         4.30
##  5                0 younger   actionnow           4.16
##  6                0 younger   relevance           4.15
##  7                1 older     regret              3.60
##  8                1 older     reliability         3.43
##  9                1 older     valence             3.22
## 10                1 younger   regret              3.74
## 11                1 younger   valence             3.58
## 12                1 younger   sadness             3.46

Plot Top 3 Motives by age group and DI Response

ggplot(top3_motives_by_age_DI,
       aes(x = reorder(motive, avg_rating), y = avg_rating, fill = Age_group)) +
  geom_col(position = position_dodge(width = 0.8), width = 0.7) +
  facet_wrap(~ want_to_know_bin, scales = "free_x", ncol = 2,
             labeller = labeller(want_to_know_bin = c(`1` = "Do not want to know (DI)", `0` = "Want to know"))) +
  scale_fill_manual(values = c("older" = "#4CAF50", "younger" = "#2196F3"),
                    labels = c("older", "younger")) +
  labs(
    title = "Top 3 Motives by Age Group and DI Response",
    x = "Motive",
    y = "Average Rating",
    fill = "Age Group"
  ) +
  theme_minimal(base_size = 12)

10. Correlation between Ratings

10.1. Correlation Ratings by Scenario

partner_prev_relationship

dat_cor_expect_val <- dat_short %>% 
                            filter(Scenario_Content=="partner_prev_relationship" & expectation!=-99 & valence!=-99)

cor(
  dat_cor_expect_val$expectation,
  dat_cor_expect_val$valence
)
## [1] 0.5405306
dat_cor_sad_ang<-dat_short%>%filter(Scenario_Content=="partner_prev_relationship" & sadness!=-99 & anger !=-99)

cor(
  dat_cor_sad_ang$sadness,
  dat_cor_sad_ang$anger
)
## [1] 0.7297495

Correlation Matrix by Scenario

corr_scenario <- dat_short %>%
  group_by(Scenario_Content) %>%
  summarise(
    cor_matrix = list(
      cor(
        mutate(across(all_of(motive_vars), ~ ifelse(.x == -99, NA, .x))),
        use = "pairwise.complete.obs"
      )
    ),
    .groups = "drop"
  )


corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "partner_prev_relationship")]]
##               expectation    valence   arousal   sadness     anger      fear
## expectation     1.0000000 0.54053056 0.5595805 0.6244643 0.4200598 0.6014518
## valence         0.5405306 1.00000000 0.6877440 0.7036417 0.7315410 0.6579973
## arousal         0.5595805 0.68774397 1.0000000 0.7054604 0.7015077 0.6932262
## sadness         0.6244643 0.70364174 0.7054604 1.0000000 0.7297495 0.6943635
## anger           0.4200598 0.73154102 0.7015077 0.7297495 1.0000000 0.5776163
## fear            0.6014518 0.65799731 0.6932262 0.6943635 0.5776163 1.0000000
## jealousy        0.5571235 0.67675471 0.5701327 0.5894520 0.5708461 0.6190836
## envy            0.4306493 0.52328698 0.4245787 0.4276729 0.4897417 0.5094963
## disgust         0.4895966 0.51729075 0.5406767 0.4875126 0.5982754 0.4902458
## regret          0.5721047 0.65603234 0.6849295 0.6046526 0.5774978 0.6565768
## feelinggood     0.4646819 0.34949899 0.4073026 0.4046300 0.4368188 0.4471651
## relief          0.4494211 0.42946558 0.4922044 0.4845223 0.3545884 0.5189305
## happiness       0.4085344 0.37503800 0.4425206 0.4528634 0.4663663 0.5227876
## complexity      0.2560937 0.42100858 0.3755808 0.4063908 0.2989286 0.5606756
## relevance       0.4112834 0.21048994 0.3289167 0.3224455 0.2446929 0.3517321
## reliability     0.1682655 0.25777812 0.1030618 0.1640056 0.1546212 0.2959762
## relationships   0.5519030 0.58520618 0.6487949 0.5760986 0.4556461 0.6341877
## conflict        0.5455372 0.64417707 0.6407215 0.6445533 0.6093191 0.5838760
## politeness      0.2255147 0.08158145 0.1616687 0.1781042 0.1466799 0.1865269
## notlying        0.2565170 0.36811938 0.4154499 0.4222965 0.5208587 0.4199776
## unsureresp.     0.5442334 0.54100128 0.5913108 0.5916362 0.4391878 0.6385927
## exclusion       0.3757505 0.37940209 0.3547720 0.4803731 0.3522943 0.5663411
## self.percept.   0.4825401 0.51770828 0.4956342 0.5836077 0.5540944 0.4919540
## actiongeneral   0.2411682 0.32147998 0.3339778 0.3136727 0.3151412 0.4691348
## actionnow       0.2490104 0.22099676 0.2276929 0.3275498 0.2990095 0.4259542
## disadvantage    0.5150366 0.54520743 0.5129606 0.5748098 0.4819757 0.6467611
## goalinterfer    0.3500015 0.42698815 0.4901830 0.4194161 0.3986879 0.6332990
## socialobligat   0.1663572 0.22683702 0.2747528 0.2241221 0.2396766 0.2819600
## legalobligat    0.2217388 0.29087230 0.2941887 0.2556700 0.3088746 0.3801338
## surprise        0.1841026 0.30305333 0.3469458 0.2472141 0.3599058 0.2721208
## fairness        0.4405053 0.42451998 0.4486068 0.4498880 0.3870228 0.4191943
##                jealousy      envy   disgust     regret feelinggood    relief
## expectation   0.5571235 0.4306493 0.4895966 0.57210473   0.4646819 0.4494211
## valence       0.6767547 0.5232870 0.5172908 0.65603234   0.3494990 0.4294656
## arousal       0.5701327 0.4245787 0.5406767 0.68492948   0.4073026 0.4922044
## sadness       0.5894520 0.4276729 0.4875126 0.60465258   0.4046300 0.4845223
## anger         0.5708461 0.4897417 0.5982754 0.57749775   0.4368188 0.3545884
## fear          0.6190836 0.5094963 0.4902458 0.65657679   0.4471651 0.5189305
## jealousy      1.0000000 0.7764850 0.4861889 0.49099503   0.4349026 0.4122725
## envy          0.7764850 1.0000000 0.5080078 0.43915629   0.4234701 0.3556001
## disgust       0.4861889 0.5080078 1.0000000 0.57334616   0.4305344 0.4728058
## regret        0.4909950 0.4391563 0.5733462 1.00000000   0.3365803 0.3491648
## feelinggood   0.4349026 0.4234701 0.4305344 0.33658033   1.0000000 0.5619559
## relief        0.4122725 0.3556001 0.4728058 0.34916476   0.5619559 1.0000000
## happiness     0.3957612 0.3394258 0.4273881 0.38740129   0.7518428 0.5829304
## complexity    0.3042932 0.2890438 0.3868763 0.34419413   0.2816479 0.3327647
## relevance     0.3213799 0.3332719 0.3627570 0.18335833   0.3478829 0.4666935
## reliability   0.2378202 0.1913660 0.1465199 0.07836074   0.2646387 0.3175479
## relationships 0.4639859 0.3103528 0.4685237 0.61739372   0.2913850 0.4429336
## conflict      0.4554408 0.3327501 0.5288821 0.71078136   0.2195237 0.3775870
## politeness    0.2026887 0.2875136 0.2585464 0.15496756   0.3844545 0.3489122
## notlying      0.3364768 0.2908880 0.4186209 0.33613106   0.3401327 0.2790404
## unsureresp.   0.5428649 0.4196665 0.3986932 0.62464095   0.3117996 0.4263320
## exclusion     0.4188946 0.3370483 0.4665212 0.33833889   0.3610546 0.4601092
## self.percept. 0.6194980 0.5452117 0.4813286 0.41377375   0.4196568 0.4836433
## actiongeneral 0.3124495 0.2858185 0.3174594 0.19444226   0.4073763 0.4696599
## actionnow     0.2657821 0.2703720 0.3801810 0.18693119   0.4503749 0.4168650
## disadvantage  0.5004436 0.3948400 0.3973548 0.41880719   0.3911815 0.4585804
## goalinterfer  0.3707545 0.3846519 0.4579401 0.37499611   0.4547734 0.5034747
## socialobligat 0.2752694 0.3360647 0.3477241 0.17879460   0.2985591 0.3272595
## legalobligat  0.1507504 0.2470298 0.3661389 0.23343780   0.4401936 0.4127753
## surprise      0.3172123 0.2418113 0.3786073 0.25429297   0.3215005 0.2786199
## fairness      0.3767349 0.2636543 0.2967229 0.34995888   0.4259879 0.4284807
##               happiness complexity  relevance reliability relationships
## expectation   0.4085344  0.2560937 0.41128341  0.16826554     0.5519030
## valence       0.3750380  0.4210086 0.21048994  0.25777812     0.5852062
## arousal       0.4425206  0.3755808 0.32891674  0.10306183     0.6487949
## sadness       0.4528634  0.4063908 0.32244545  0.16400557     0.5760986
## anger         0.4663663  0.2989286 0.24469290  0.15462123     0.4556461
## fear          0.5227876  0.5606756 0.35173210  0.29597622     0.6341877
## jealousy      0.3957612  0.3042932 0.32137986  0.23782020     0.4639859
## envy          0.3394258  0.2890438 0.33327187  0.19136595     0.3103528
## disgust       0.4273881  0.3868763 0.36275698  0.14651992     0.4685237
## regret        0.3874013  0.3441941 0.18335833  0.07836074     0.6173937
## feelinggood   0.7518428  0.2816479 0.34788295  0.26463866     0.2913850
## relief        0.5829304  0.3327647 0.46669346  0.31754786     0.4429336
## happiness     1.0000000  0.3003727 0.35067026  0.36814533     0.3788644
## complexity    0.3003727  1.0000000 0.12724709  0.23493631     0.3991169
## relevance     0.3506703  0.1272471 1.00000000  0.27173573     0.2989484
## reliability   0.3681453  0.2349363 0.27173573  1.00000000     0.1766088
## relationships 0.3788644  0.3991169 0.29894839  0.17660875     1.0000000
## conflict      0.3007044  0.3008869 0.21943898  0.09223134     0.7164144
## politeness    0.2132055  0.3178124 0.26405952  0.17726943     0.2477064
## notlying      0.2656731  0.4354978 0.14982985  0.17227466     0.3578295
## unsureresp.   0.2829148  0.4290835 0.18106842  0.12327120     0.6340452
## exclusion     0.3888697  0.6412744 0.23889137  0.26793838     0.4754813
## self.percept. 0.4805415  0.3262038 0.46778221  0.18555314     0.4996641
## actiongeneral 0.3791194  0.3642364 0.51532940  0.41052696     0.3334921
## actionnow     0.3820425  0.2727468 0.52409668  0.33063214     0.1655913
## disadvantage  0.4179869  0.4727817 0.21541649  0.19863059     0.5008206
## goalinterfer  0.4932406  0.6507618 0.34699259  0.21434757     0.4918325
## socialobligat 0.2588801  0.3984926 0.22719273  0.02140207     0.2954058
## legalobligat  0.4063236  0.4539661 0.27898906  0.14628261     0.2720738
## surprise      0.2690900  0.4449465 0.09185564  0.14611227     0.3105406
## fairness      0.2742252  0.2277163 0.29086021  0.20278852     0.4596458
##                 conflict politeness  notlying unsureresp. exclusion
## expectation   0.54553723 0.22551469 0.2565170   0.5442334 0.3757505
## valence       0.64417707 0.08158145 0.3681194   0.5410013 0.3794021
## arousal       0.64072145 0.16166866 0.4154499   0.5913108 0.3547720
## sadness       0.64455326 0.17810415 0.4222965   0.5916362 0.4803731
## anger         0.60931909 0.14667994 0.5208587   0.4391878 0.3522943
## fear          0.58387600 0.18652695 0.4199776   0.6385927 0.5663411
## jealousy      0.45544079 0.20268873 0.3364768   0.5428649 0.4188946
## envy          0.33275008 0.28751361 0.2908880   0.4196665 0.3370483
## disgust       0.52888206 0.25854635 0.4186209   0.3986932 0.4665212
## regret        0.71078136 0.15496756 0.3361311   0.6246410 0.3383389
## feelinggood   0.21952372 0.38445453 0.3401327   0.3117996 0.3610546
## relief        0.37758695 0.34891220 0.2790404   0.4263320 0.4601092
## happiness     0.30070436 0.21320551 0.2656731   0.2829148 0.3888697
## complexity    0.30088694 0.31781242 0.4354978   0.4290835 0.6412744
## relevance     0.21943898 0.26405952 0.1498299   0.1810684 0.2388914
## reliability   0.09223134 0.17726943 0.1722747   0.1232712 0.2679384
## relationships 0.71641438 0.24770640 0.3578295   0.6340452 0.4754813
## conflict      1.00000000 0.20157160 0.3636187   0.5661560 0.3774948
## politeness    0.20157160 1.00000000 0.3804101   0.2232360 0.4091917
## notlying      0.36361873 0.38041013 1.0000000   0.3722002 0.5296668
## unsureresp.   0.56615601 0.22323596 0.3722002   1.0000000 0.3793391
## exclusion     0.37749481 0.40919170 0.5296668   0.3793391 1.0000000
## self.percept. 0.44376619 0.39518543 0.3359094   0.4608880 0.5275708
## actiongeneral 0.21538717 0.26622167 0.4688308   0.2401251 0.4826288
## actionnow     0.14890415 0.22975073 0.2475926   0.1691725 0.3924125
## disadvantage  0.36615178 0.24592480 0.5126067   0.4897496 0.5718544
## goalinterfer  0.36490271 0.35586659 0.4456845   0.4564156 0.6331446
## socialobligat 0.24674410 0.49924473 0.5241934   0.1978420 0.4949087
## legalobligat  0.28561001 0.51050918 0.5098555   0.1954498 0.6258379
## surprise      0.29801468 0.28175122 0.4566503   0.3202888 0.4569351
## fairness      0.41782193 0.36612866 0.5420908   0.3371094 0.4437252
##               self.percept. actiongeneral actionnow disadvantage goalinterfer
## expectation       0.4825401     0.2411682 0.2490104    0.5150366    0.3500015
## valence           0.5177083     0.3214800 0.2209968    0.5452074    0.4269881
## arousal           0.4956342     0.3339778 0.2276929    0.5129606    0.4901830
## sadness           0.5836077     0.3136727 0.3275498    0.5748098    0.4194161
## anger             0.5540944     0.3151412 0.2990095    0.4819757    0.3986879
## fear              0.4919540     0.4691348 0.4259542    0.6467611    0.6332990
## jealousy          0.6194980     0.3124495 0.2657821    0.5004436    0.3707545
## envy              0.5452117     0.2858185 0.2703720    0.3948400    0.3846519
## disgust           0.4813286     0.3174594 0.3801810    0.3973548    0.4579401
## regret            0.4137737     0.1944423 0.1869312    0.4188072    0.3749961
## feelinggood       0.4196568     0.4073763 0.4503749    0.3911815    0.4547734
## relief            0.4836433     0.4696599 0.4168650    0.4585804    0.5034747
## happiness         0.4805415     0.3791194 0.3820425    0.4179869    0.4932406
## complexity        0.3262038     0.3642364 0.2727468    0.4727817    0.6507618
## relevance         0.4677822     0.5153294 0.5240967    0.2154165    0.3469926
## reliability       0.1855531     0.4105270 0.3306321    0.1986306    0.2143476
## relationships     0.4996641     0.3334921 0.1655913    0.5008206    0.4918325
## conflict          0.4437662     0.2153872 0.1489042    0.3661518    0.3649027
## politeness        0.3951854     0.2662217 0.2297507    0.2459248    0.3558666
## notlying          0.3359094     0.4688308 0.2475926    0.5126067    0.4456845
## unsureresp.       0.4608880     0.2401251 0.1691725    0.4897496    0.4564156
## exclusion         0.5275708     0.4826288 0.3924125    0.5718544    0.6331446
## self.percept.     1.0000000     0.3799831 0.3334828    0.5524089    0.4542851
## actiongeneral     0.3799831     1.0000000 0.6535328    0.3745729    0.4987703
## actionnow         0.3334828     0.6535328 1.0000000    0.2743954    0.3720016
## disadvantage      0.5524089     0.3745729 0.2743954    1.0000000    0.6248326
## goalinterfer      0.4542851     0.4987703 0.3720016    0.6248326    1.0000000
## socialobligat     0.4798507     0.4282064 0.3418547    0.4228362    0.4608952
## legalobligat      0.3431165     0.4864817 0.4382445    0.4457579    0.5904573
## surprise          0.4067980     0.2725631 0.2924018    0.2825278    0.3646355
## fairness          0.3730390     0.3478270 0.1886858    0.4623365    0.3019871
##               socialobligat legalobligat   surprise  fairness
## expectation      0.16635716    0.2217388 0.18410256 0.4405053
## valence          0.22683702    0.2908723 0.30305333 0.4245200
## arousal          0.27475281    0.2941887 0.34694578 0.4486068
## sadness          0.22412211    0.2556700 0.24721410 0.4498880
## anger            0.23967656    0.3088746 0.35990575 0.3870228
## fear             0.28196004    0.3801338 0.27212081 0.4191943
## jealousy         0.27526943    0.1507504 0.31721232 0.3767349
## envy             0.33606471    0.2470298 0.24181129 0.2636543
## disgust          0.34772409    0.3661389 0.37860734 0.2967229
## regret           0.17879460    0.2334378 0.25429297 0.3499589
## feelinggood      0.29855907    0.4401936 0.32150051 0.4259879
## relief           0.32725952    0.4127753 0.27861988 0.4284807
## happiness        0.25888013    0.4063236 0.26909005 0.2742252
## complexity       0.39849262    0.4539661 0.44494650 0.2277163
## relevance        0.22719273    0.2789891 0.09185564 0.2908602
## reliability      0.02140207    0.1462826 0.14611227 0.2027885
## relationships    0.29540576    0.2720738 0.31054059 0.4596458
## conflict         0.24674410    0.2856100 0.29801468 0.4178219
## politeness       0.49924473    0.5105092 0.28175122 0.3661287
## notlying         0.52419338    0.5098555 0.45665026 0.5420908
## unsureresp.      0.19784197    0.1954498 0.32028885 0.3371094
## exclusion        0.49490872    0.6258379 0.45693511 0.4437252
## self.percept.    0.47985071    0.3431165 0.40679798 0.3730390
## actiongeneral    0.42820640    0.4864817 0.27256309 0.3478270
## actionnow        0.34185468    0.4382445 0.29240181 0.1886858
## disadvantage     0.42283625    0.4457579 0.28252778 0.4623365
## goalinterfer     0.46089524    0.5904573 0.36463546 0.3019871
## socialobligat    1.00000000    0.5761903 0.28121536 0.2794852
## legalobligat     0.57619031    1.0000000 0.39534405 0.4291377
## surprise         0.28121536    0.3953440 1.00000000 0.3644715
## fairness         0.27948524    0.4291377 0.36447148 1.0000000

Correlation Matrix hiv_test

#correlation matrix for scenario
mat_hiv <- corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "hiv_test")]]

#long format
mat_long_hiv <- melt(mat_hiv, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_hiv, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Hiv Test")

strong correlations hiv test

strong_corr_hiv <- mat_long_hiv %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation matrix Genetic Risk Alzheimer

#correlation matrix for scenario
mat_alz <- corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "gen_risk_alzheimer")]]

#long format
mat_long_alz <- melt(mat_alz, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_alz, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Genetic Risk Alzheimer")

strong correlations gen risk alzheimer

strong_corr_alz <- mat_long_alz %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))                                    

Correlation matrix Genetic Risk Huntington

#correlation matrix for scenario
mat_hunt_risk <- corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "gen_risk_huntington")]]

#long format
mat_long_hunt_risk <- melt(mat_hunt_risk, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_hunt_risk, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Genetic Risk Huntington")

strong correlations gen risk huntington

strong_corr_hunt_risk <- mat_long_hunt_risk %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation matrix Life Expect Huntington

#correlation matrix for scenario
mat_hunt_life <- corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "life_expect_huntington")]]

#long format
mat_long_hunt_life <- melt(mat_hunt_life, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_hunt_life, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Life expectation Huntington")

strong correlations life expect huntington

strong_corr_hunt_life <- mat_long_hunt_life %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation matrix Ending GoT

#correlation matrix for scenario
mat_got <- corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "ending_GoT")]]

#long format
mat_long_got <- melt(mat_got, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_got, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Ending GoT")

strong correlations ending GoT

strong_corr_got <- mat_long_got %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation matrix Scenario Kardashian Home

#correlation matrix for scenario
mat_kardashian <- corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "Kardashian_home")]]

#long format
mat_long_kardashian <- melt(mat_kardashian, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_kardashian, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Kardashian Home")

strong correlations kardashian

strong_corr_kardashian <- mat_long_kardashian %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation matrix Altern recent Purchase

#correlation matrix for scenario
mat_purchase <- corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "altern_recent_purchase")]]

#long format
mat_long_purchase <- melt(mat_purchase, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_purchase, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Altern recent purchase ")

strong correlations altern recent purchase

strong_corr_purchase <- mat_long_purchase %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation matrix Scenario Friend Sex Life

#correlation matrix for scenario
mat_friend_sex <- corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "friend_sex_life")]]

#long format
mat_long_friend_sex <- melt(mat_friend_sex, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_friend_sex, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Friend Sex Life")

strong correlations friend sex life

strong_corr_friend_sex <- mat_long_friend_sex %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation matrix Partner Previous Relationship

#correlation matrix for scenario
mat_relationship <- corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "partner_prev_relationship")]]

#long format
mat_long_relationship <- melt(mat_relationship, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_relationship, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Partner Previous Relationship")

strong correlations partner previous relationship

strong_corr_relationship <- mat_long_relationship %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation matrix Scenario Sex of Child

#correlation matrix for scenario
mat_child <- corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "sex_of_child")]]

#long format
mat_long_child <- melt(mat_child, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_child, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Sex of Child")

strong correlations sex of child

strong_corr_child <- mat_long_child %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation matrix Nutritional deficiencies

#correlation matrix for scenario
mat_nutri<- corr_scenario$cor_matrix[[which(corr_scenario$Scenario_Content == "nutritional_deficiencies")]]

#long format
mat_long_nutri <- melt(mat_nutri, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_nutri, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Nutritional Deficiencies")

strong correlations Nutritional Deficiencies

strong_corr_nutri <- mat_long_nutri %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

10.2. Correlation Ratings by Category

unique(dat_short$Scenario_Category)
## [1] "Health"        "Social"        "Finances"      "Career"       
## [5] "Society"       "Entertainment" "Environment"
corr_category <- dat_short %>%
  group_by(Scenario_Category) %>%
  summarise(
    cor_matrix = list(
      {
        temp <- across(all_of(motive_vars), ~ ifelse(.x == -99, NA, .x))
        cor(as.data.frame(temp), use = "pairwise.complete.obs")
      }
    ),
    .groups = "drop"
  )

Correlation Matrix Health

#correlation matrix for category

mat_health <- corr_category$cor_matrix[[which(corr_category$Scenario_Category == "Health")]]

#long format
mat_long_health <- melt(mat_health, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_health, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Health")

strong correlations health

strong_corr_health <- mat_long_health %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation Matrix Entertainment

#correlation matrix for category

mat_entertainment <- corr_category$cor_matrix[[which(corr_category$Scenario_Category == "Entertainment")]]

#long format
mat_long_entertainment <- melt(mat_entertainment, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_entertainment, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Entertainment")

strong correlations Entertainment

strong_corr_entertainment <- mat_long_entertainment %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation Matrix Career

#correlation matrix for category

mat_career <- corr_category$cor_matrix[[which(corr_category$Scenario_Category == "Career")]]

#long format
mat_long_career <- melt(mat_career, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_career, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Career")

strong correlations Career

strong_corr_career <- mat_long_career %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation Matrix Finances

#correlation matrix for category

mat_finances <- corr_category$cor_matrix[[which(corr_category$Scenario_Category == "Finances")]]

#long format
mat_long_finances <- melt(mat_finances, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_finances, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Finances")

strong correlations Finances

strong_corr_finances <- mat_long_finances %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

10.3. Overall correlation matrix across scenarios

corr_overall <- dat_short %>%
  summarise(
    cor_matrix = list(
      cor(
        mutate(across(all_of(motive_vars), ~ ifelse(.x == -99, NA, .x))),
        use = "pairwise.complete.obs"
      )
    ),
    .groups = "drop"
  )

corr_overall$cor_matrix[[1]]
##               expectation   valence   arousal   sadness     anger      fear
## expectation     1.0000000 0.5200371 0.4275209 0.4980280 0.4294684 0.4961903
## valence         0.5200371 1.0000000 0.5856840 0.6980167 0.6277802 0.6260914
## arousal         0.4275209 0.5856840 1.0000000 0.6455394 0.5749443 0.5662476
## sadness         0.4980280 0.6980167 0.6455394 1.0000000 0.6560944 0.6001209
## anger           0.4294684 0.6277802 0.5749443 0.6560944 1.0000000 0.5171756
## fear            0.4961903 0.6260914 0.5662476 0.6001209 0.5171756 1.0000000
## jealousy        0.2773749 0.3732421 0.3316619 0.3591771 0.4222898 0.3505392
## envy            0.2248701 0.3398443 0.2838773 0.3299173 0.3721670 0.2942678
## disgust         0.3571635 0.4977043 0.4229284 0.4855905 0.5796880 0.3603988
## regret          0.4172377 0.5230210 0.4015322 0.4589669 0.4123120 0.4818549
## feelinggood     0.2330411 0.3233116 0.3369765 0.2699107 0.2362157 0.3302487
## relief          0.2987146 0.3450466 0.3481085 0.3054552 0.2758024 0.4424290
## happiness       0.2397001 0.3033323 0.3567941 0.2897181 0.2648376 0.3256109
## complexity      0.2775573 0.3595164 0.3589919 0.3708931 0.3563017 0.3933162
## relevance       0.2564659 0.2370984 0.2509937 0.2188205 0.1788983 0.3484988
## reliability     0.1854527 0.1823014 0.2046020 0.1811144 0.1793014 0.2501147
## relationships   0.3238377 0.3874311 0.3990074 0.3952525 0.3798968 0.4695966
## conflict        0.3057135 0.3896549 0.3566116 0.3804781 0.4176043 0.4136184
## politeness      0.1143631 0.1807060 0.2370163 0.2207393 0.2247762 0.1663450
## notlying        0.2037159 0.3077725 0.2709800 0.2821882 0.2834920 0.3135511
## unsureresp.     0.4284112 0.5009429 0.4699303 0.4915051 0.4171232 0.5186386
## exclusion       0.2237651 0.3107659 0.3245321 0.3181984 0.3315133 0.3677919
## self.percept.   0.3494316 0.4407834 0.4291907 0.4290053 0.4007583 0.4295134
## actiongeneral   0.2783822 0.2648632 0.2850313 0.2665760 0.2288970 0.3605213
## actionnow       0.2306814 0.1851908 0.2163829 0.1746061 0.1617760 0.2888031
## disadvantage    0.3483148 0.4164990 0.3594263 0.3543468 0.3638942 0.4692187
## goalinterfer    0.3181815 0.3870351 0.3287547 0.3658174 0.3141622 0.4715779
## socialobligat   0.2642331 0.2765725 0.3250004 0.2965516 0.2943342 0.3209490
## legalobligat    0.2114515 0.2467779 0.2701334 0.2388927 0.2741916 0.3217720
## surprise        0.2024977 0.2226430 0.3404616 0.2424084 0.2122025 0.2379468
## fairness        0.1707168 0.2487619 0.2622549 0.2522314 0.2632953 0.2557432
##                 jealousy       envy    disgust     regret feelinggood    relief
## expectation   0.27737492 0.22487008 0.35716352 0.41723774   0.2330411 0.2987146
## valence       0.37324214 0.33984434 0.49770430 0.52302102   0.3233116 0.3450466
## arousal       0.33166187 0.28387732 0.42292838 0.40153222   0.3369765 0.3481085
## sadness       0.35917706 0.32991728 0.48559052 0.45896691   0.2699107 0.3054552
## anger         0.42228982 0.37216696 0.57968800 0.41231204   0.2362157 0.2758024
## fear          0.35053917 0.29426776 0.36039876 0.48185487   0.3302487 0.4424290
## jealousy      1.00000000 0.71476167 0.32747505 0.33473271   0.3455271 0.3160158
## envy          0.71476167 1.00000000 0.32824960 0.31098912   0.3647476 0.3002625
## disgust       0.32747505 0.32824960 1.00000000 0.34191745   0.1886266 0.1987625
## regret        0.33473271 0.31098912 0.34191745 1.00000000   0.2920329 0.2755626
## feelinggood   0.34552711 0.36474756 0.18862662 0.29203285   1.0000000 0.5459916
## relief        0.31601576 0.30026253 0.19876252 0.27556265   0.5459916 1.0000000
## happiness     0.35720512 0.37446203 0.20181465 0.29596580   0.7082595 0.5411710
## complexity    0.30801522 0.28831737 0.31646127 0.29027936   0.2683273 0.2922038
## relevance     0.22417648 0.21487329 0.05647475 0.14190634   0.3601156 0.4721333
## reliability   0.08217972 0.05296204 0.12563177 0.08687899   0.2268563 0.3461385
## relationships 0.39616765 0.33424620 0.25246611 0.35616363   0.2648325 0.3809756
## conflict      0.41732281 0.36112638 0.38628778 0.38301081   0.2563548 0.3045518
## politeness    0.24808658 0.27077784 0.25169215 0.16467008   0.2425720 0.2069083
## notlying      0.33757715 0.31719399 0.28918992 0.34350424   0.2511141 0.2714981
## unsureresp.   0.32185566 0.26922128 0.33453575 0.46456162   0.2666833 0.3092804
## exclusion     0.47001346 0.42006585 0.28669799 0.28585183   0.3479339 0.3772505
## self.percept. 0.37602323 0.34888293 0.28268786 0.28948849   0.3549692 0.4033383
## actiongeneral 0.13711425 0.11375210 0.14307681 0.17427256   0.2736766 0.4096112
## actionnow     0.12935706 0.12011133 0.08626281 0.10647008   0.3063014 0.4110130
## disadvantage  0.42889770 0.38777027 0.26315040 0.36487624   0.3830086 0.4318001
## goalinterfer  0.35846601 0.30877004 0.19524515 0.32160408   0.3642758 0.4562755
## socialobligat 0.11800262 0.11107794 0.24863277 0.16331559   0.1825518 0.2902696
## legalobligat  0.17294352 0.19555192 0.24618512 0.17267126   0.2626834 0.3588674
## surprise      0.29933265 0.30256003 0.25590217 0.26431529   0.4064420 0.2900834
## fairness      0.28005887 0.30858127 0.29494503 0.26464802   0.2552872 0.2799923
##               happiness complexity  relevance reliability relationships
## expectation   0.2397001  0.2775573 0.25646595  0.18545272     0.3238377
## valence       0.3033323  0.3595164 0.23709839  0.18230139     0.3874311
## arousal       0.3567941  0.3589919 0.25099367  0.20460203     0.3990074
## sadness       0.2897181  0.3708931 0.21882054  0.18111443     0.3952525
## anger         0.2648376  0.3563017 0.17889833  0.17930141     0.3798968
## fear          0.3256109  0.3933162 0.34849877  0.25011472     0.4695966
## jealousy      0.3572051  0.3080152 0.22417648  0.08217972     0.3961677
## envy          0.3744620  0.2883174 0.21487329  0.05296204     0.3342462
## disgust       0.2018147  0.3164613 0.05647475  0.12563177     0.2524661
## regret        0.2959658  0.2902794 0.14190634  0.08687899     0.3561636
## feelinggood   0.7082595  0.2683273 0.36011565  0.22685631     0.2648325
## relief        0.5411710  0.2922038 0.47213332  0.34613846     0.3809756
## happiness     1.0000000  0.2599320 0.34209626  0.24211442     0.3159455
## complexity    0.2599320  1.0000000 0.20005454  0.20389206     0.2999190
## relevance     0.3420963  0.2000545 1.00000000  0.43531037     0.3601105
## reliability   0.2421144  0.2038921 0.43531037  1.00000000     0.2041885
## relationships 0.3159455  0.2999190 0.36011050  0.20418854     1.0000000
## conflict      0.2705714  0.3077800 0.20896677  0.17675834     0.5803009
## politeness    0.2419248  0.3022168 0.10203976  0.13591964     0.3249712
## notlying      0.2567506  0.2770559 0.16899400  0.21300530     0.3975133
## unsureresp.   0.2644877  0.3895889 0.23878891  0.18490224     0.4392956
## exclusion     0.3655887  0.3570022 0.23932733  0.16718768     0.4864089
## self.percept. 0.3524825  0.3434231 0.41481285  0.24540865     0.4459063
## actiongeneral 0.2876833  0.2333411 0.50714043  0.44145075     0.3066937
## actionnow     0.2849052  0.2085702 0.59403411  0.45670151     0.2526948
## disadvantage  0.3794917  0.3508088 0.37106239  0.23948023     0.4725844
## goalinterfer  0.3553300  0.3109882 0.47663120  0.26923115     0.4766255
## socialobligat 0.1938424  0.2701528 0.30086101  0.31891987     0.3194480
## legalobligat  0.2550225  0.3034115 0.29282362  0.31477110     0.3507959
## surprise      0.3677269  0.2871699 0.13605243  0.10865594     0.2074117
## fairness      0.2722792  0.3219180 0.21664997  0.24010093     0.3386755
##                conflict politeness  notlying unsureresp. exclusion
## expectation   0.3057135  0.1143631 0.2037159   0.4284112 0.2237651
## valence       0.3896549  0.1807060 0.3077725   0.5009429 0.3107659
## arousal       0.3566116  0.2370163 0.2709800   0.4699303 0.3245321
## sadness       0.3804781  0.2207393 0.2821882   0.4915051 0.3181984
## anger         0.4176043  0.2247762 0.2834920   0.4171232 0.3315133
## fear          0.4136184  0.1663450 0.3135511   0.5186386 0.3677919
## jealousy      0.4173228  0.2480866 0.3375772   0.3218557 0.4700135
## envy          0.3611264  0.2707778 0.3171940   0.2692213 0.4200658
## disgust       0.3862878  0.2516922 0.2891899   0.3345358 0.2866980
## regret        0.3830108  0.1646701 0.3435042   0.4645616 0.2858518
## feelinggood   0.2563548  0.2425720 0.2511141   0.2666833 0.3479339
## relief        0.3045518  0.2069083 0.2714981   0.3092804 0.3772505
## happiness     0.2705714  0.2419248 0.2567506   0.2644877 0.3655887
## complexity    0.3077800  0.3022168 0.2770559   0.3895889 0.3570022
## relevance     0.2089668  0.1020398 0.1689940   0.2387889 0.2393273
## reliability   0.1767583  0.1359196 0.2130053   0.1849022 0.1671877
## relationships 0.5803009  0.3249712 0.3975133   0.4392956 0.4864089
## conflict      1.0000000  0.3556785 0.4480701   0.4349366 0.4695326
## politeness    0.3556785  1.0000000 0.3290549   0.2784077 0.3722767
## notlying      0.4480701  0.3290549 1.0000000   0.3417610 0.4273780
## unsureresp.   0.4349366  0.2784077 0.3417610   1.0000000 0.3415824
## exclusion     0.4695326  0.3722767 0.4273780   0.3415824 1.0000000
## self.percept. 0.3293225  0.2605216 0.2922205   0.3973499 0.3968105
## actiongeneral 0.2190078  0.1703420 0.2371201   0.3153525 0.2234973
## actionnow     0.1735797  0.1022710 0.1870817   0.1906053 0.2145626
## disadvantage  0.4124109  0.2501756 0.3968018   0.4062718 0.4670470
## goalinterfer  0.3391966  0.1923098 0.2987200   0.3561290 0.3957628
## socialobligat 0.3092120  0.3009263 0.3032635   0.3273723 0.2937801
## legalobligat  0.3585770  0.2998407 0.4204491   0.2984373 0.3573164
## surprise      0.2052270  0.2816259 0.2375723   0.2328059 0.3116909
## fairness      0.3874847  0.3818929 0.5090895   0.3320857 0.3910960
##               self.percept. actiongeneral  actionnow disadvantage goalinterfer
## expectation       0.3494316     0.2783822 0.23068144    0.3483148    0.3181815
## valence           0.4407834     0.2648632 0.18519085    0.4164990    0.3870351
## arousal           0.4291907     0.2850313 0.21638285    0.3594263    0.3287547
## sadness           0.4290053     0.2665760 0.17460612    0.3543468    0.3658174
## anger             0.4007583     0.2288970 0.16177600    0.3638942    0.3141622
## fear              0.4295134     0.3605213 0.28880311    0.4692187    0.4715779
## jealousy          0.3760232     0.1371143 0.12935706    0.4288977    0.3584660
## envy              0.3488829     0.1137521 0.12011133    0.3877703    0.3087700
## disgust           0.2826879     0.1430768 0.08626281    0.2631504    0.1952452
## regret            0.2894885     0.1742726 0.10647008    0.3648762    0.3216041
## feelinggood       0.3549692     0.2736766 0.30630140    0.3830086    0.3642758
## relief            0.4033383     0.4096112 0.41101301    0.4318001    0.4562755
## happiness         0.3524825     0.2876833 0.28490519    0.3794917    0.3553300
## complexity        0.3434231     0.2333411 0.20857025    0.3508088    0.3109882
## relevance         0.4148129     0.5071404 0.59403411    0.3710624    0.4766312
## reliability       0.2454086     0.4414508 0.45670151    0.2394802    0.2692312
## relationships     0.4459063     0.3066937 0.25269479    0.4725844    0.4766255
## conflict          0.3293225     0.2190078 0.17357968    0.4124109    0.3391966
## politeness        0.2605216     0.1703420 0.10227103    0.2501756    0.1923098
## notlying          0.2922205     0.2371201 0.18708169    0.3968018    0.2987200
## unsureresp.       0.3973499     0.3153525 0.19060530    0.4062718    0.3561290
## exclusion         0.3968105     0.2234973 0.21456259    0.4670470    0.3957628
## self.percept.     1.0000000     0.3619289 0.34263443    0.4317848    0.4841495
## actiongeneral     0.3619289     1.0000000 0.55488727    0.3352735    0.3989646
## actionnow         0.3426344     0.5548873 1.00000000    0.3076829    0.3953785
## disadvantage      0.4317848     0.3352735 0.30768291    1.0000000    0.5611209
## goalinterfer      0.4841495     0.3989646 0.39537848    0.5611209    1.0000000
## socialobligat     0.3775174     0.4764008 0.36613091    0.2876636    0.2825382
## legalobligat      0.2973847     0.4103124 0.33265008    0.3846550    0.3264586
## surprise          0.2458130     0.1367014 0.14035499    0.3050319    0.2314414
## fairness          0.3207610     0.2717477 0.23703921    0.3842195    0.2856209
##               socialobligat legalobligat  surprise  fairness
## expectation       0.2642331    0.2114515 0.2024977 0.1707168
## valence           0.2765725    0.2467779 0.2226430 0.2487619
## arousal           0.3250004    0.2701334 0.3404616 0.2622549
## sadness           0.2965516    0.2388927 0.2424084 0.2522314
## anger             0.2943342    0.2741916 0.2122025 0.2632953
## fear              0.3209490    0.3217720 0.2379468 0.2557432
## jealousy          0.1180026    0.1729435 0.2993326 0.2800589
## envy              0.1110779    0.1955519 0.3025600 0.3085813
## disgust           0.2486328    0.2461851 0.2559022 0.2949450
## regret            0.1633156    0.1726713 0.2643153 0.2646480
## feelinggood       0.1825518    0.2626834 0.4064420 0.2552872
## relief            0.2902696    0.3588674 0.2900834 0.2799923
## happiness         0.1938424    0.2550225 0.3677269 0.2722792
## complexity        0.2701528    0.3034115 0.2871699 0.3219180
## relevance         0.3008610    0.2928236 0.1360524 0.2166500
## reliability       0.3189199    0.3147711 0.1086559 0.2401009
## relationships     0.3194480    0.3507959 0.2074117 0.3386755
## conflict          0.3092120    0.3585770 0.2052270 0.3874847
## politeness        0.3009263    0.2998407 0.2816259 0.3818929
## notlying          0.3032635    0.4204491 0.2375723 0.5090895
## unsureresp.       0.3273723    0.2984373 0.2328059 0.3320857
## exclusion         0.2937801    0.3573164 0.3116909 0.3910960
## self.percept.     0.3775174    0.2973847 0.2458130 0.3207610
## actiongeneral     0.4764008    0.4103124 0.1367014 0.2717477
## actionnow         0.3661309    0.3326501 0.1403550 0.2370392
## disadvantage      0.2876636    0.3846550 0.3050319 0.3842195
## goalinterfer      0.2825382    0.3264586 0.2314414 0.2856209
## socialobligat     1.0000000    0.5647636 0.1182733 0.3727384
## legalobligat      0.5647636    1.0000000 0.2179846 0.4211929
## surprise          0.1182733    0.2179846 1.0000000 0.2415213
## fairness          0.3727384    0.4211929 0.2415213 1.0000000

Heatmap Overall Correlations

#correlation matrix for category

mat_corr <- corr_overall$cor_matrix[[1]]

#long format
mat_long_corr <- melt(mat_corr, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_corr, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: Overall")

strong correlation overall ratings

strong_corr <- mat_long_corr %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Plot strong corr overall

The plot shows positive correlations above .5. Since there are only positive correlations above .5, the absolute value of r is not displayed here.

ggplot(strong_corr, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +  # Felder mit Rahmen
  scale_fill_gradient2(
    mid = "white",   # 0
    high = "red",    # positive Korrelationen
    midpoint = 0,
    limits = c(0.5, 1)
  ) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.title = element_blank(),
    panel.grid = element_blank()
  ) +
  ggtitle("Strong correlations (r > 0.5)")

## 10.3. Correlation Matrix by Scenario and DI Response

corr matrix DI overall

corr_overall_DI <- dat_short %>%
  filter(want_to_know_bin == 1) %>% 
  summarise(
    cor_matrix = list(
      cor(
        mutate(across(all_of(motive_vars), ~ ifelse(.x == -99, NA, .x))),
        use = "pairwise.complete.obs"
      )
    ),
    .groups = "drop"
  )

strong corr DI

mat_corr_DI <- corr_overall_DI$cor_matrix[[1]]


mat_long_corr_DI <- melt(mat_corr_DI, varnames = c("Var1", "Var2"), value.name = "r")

strong_corr_DI <- mat_long_corr_DI %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation Matrix No DI overall

corr_overall_noDI <- dat_short %>%
  filter(want_to_know_bin == 0) %>% 
  summarise(
    cor_matrix = list(
      cor(
        mutate(across(all_of(motive_vars), ~ ifelse(.x == -99, NA, .x))),
        use = "pairwise.complete.obs"
      )
    ),
    .groups = "drop"
  )

strong corr no DI

mat_corr_noDI <- corr_overall_noDI$cor_matrix[[1]]


mat_long_corr_noDI <- melt(mat_corr_noDI, varnames = c("Var1", "Var2"), value.name = "r")

strong_corr_noDI <- mat_long_corr_noDI %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation Matrix by Scenario only for DI

corr_scenario_DI <- dat_short %>%
  filter(want_to_know_bin == 1) %>%      
  group_by(Scenario_Content) %>%          
  summarise(
    cor_matrix = list(
      cor(
        as.data.frame(across(all_of(motive_vars)) %>% 
                        mutate(across(everything(), ~ ifelse(.x == -99, NA, .x)))),
        use = "pairwise.complete.obs"
      )
    ),
    .groups = "drop"
  )
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `cor_matrix = list(...)`.
## ℹ In group 22: `Scenario_Content = "nutritional_deficiencies"`.
## Caused by warning in `cor()`:
## ! the standard deviation is zero
corr_scenario_DI$cor_matrix[[which(corr_scenario$Scenario_Content == "nutritional_deficiencies")]]
##               expectation     valence    arousal     sadness       anger
## expectation     1.0000000  0.90224364  0.5254237  0.90224364  0.74581524
## valence         0.9022436  1.00000000  0.8142199  1.00000000  0.86640023
## arousal         0.5254237  0.81421987  1.0000000  0.81421987  0.90282897
## sadness         0.9022436  1.00000000  0.8142199  1.00000000  0.86640023
## anger           0.7458152  0.86640023  0.9028290  0.86640023  1.00000000
## fear            0.5367826  0.77892406  0.9788389  0.77892406  0.95065415
## jealousy       -0.1177603 -0.05096472  0.3532809 -0.05096472  0.45454545
## envy            0.9449112  0.86602540  0.5000000  0.86602540  0.86602540
## disgust         0.6381723  0.88571429  0.8142199  0.88571429  0.66254135
## regret          0.9057257  0.96214047  0.8233870  0.96214047  0.95346259
## feelinggood     0.5240003  0.83152184  0.8733338  0.83152184  0.67419986
## relief          0.8268106  0.87831007  0.5261522  0.87831007  0.52223297
## happiness       0.6272151  0.89190174  0.9856237  0.89190174  0.89922880
## complexity      0.8660254  0.99587059  0.8660254  0.99587059  0.98198051
## relevance       0.0000000  0.00000000 -0.3188964  0.00000000 -0.49236596
## reliability    -0.2747740  0.15289416  0.5102946  0.15289416  0.09090909
## relationships  -0.9897783 -0.83152184 -0.4075558 -0.83152184 -0.67419986
## conflict       -0.8660254 -0.57655666  0.0000000 -0.57655666 -0.32732684
## politeness      0.8260332  0.98624138  0.9011271  0.98624138  0.99339927
## notlying        0.3273268  0.69337525  0.9819805  0.69337525  0.86602540
## unsureresp.     0.5254237  0.81421987  1.0000000  0.81421987  0.90282897
## exclusion      -0.9449112 -0.72057669 -0.1889822 -0.72057669 -0.50000000
## self.percept.   0.5641519  0.84515425  0.9981150  0.84515425  0.90453403
## actiongeneral   0.5641519  0.84515425  0.9981150  0.84515425  0.90453403
## actionnow       0.7559289  0.96076892  0.9449112  0.96076892  1.00000000
## disadvantage    0.6745135  0.92309308  0.9661950  0.92309308  0.88662069
## goalinterfer    0.3682298  0.47809144  0.7364597  0.47809144  0.85280287
## socialobligat   0.1540416  0.37142857  0.7702080  0.37142857  0.76447079
## legalobligat           NA          NA         NA          NA          NA
## surprise       -0.3905667 -0.16903085  0.3905667 -0.16903085  0.30151134
## fairness       -0.6546537 -0.27735010  0.3273268 -0.27735010  0.00000000
##                     fear    jealousy       envy    disgust     regret
## expectation    0.5367826 -0.11776030  0.9449112  0.6381723  0.9057257
## valence        0.7789241 -0.05096472  0.8660254  0.8857143  0.9621405
## arousal        0.9788389  0.35328090  0.5000000  0.8142199  0.8233870
## sadness        0.7789241 -0.05096472  0.8660254  0.8857143  0.9621405
## anger          0.9506542  0.45454545  0.8660254  0.6625413  0.9534626
## fear           1.0000000  0.51189070  0.6546537  0.6969321  0.8436615
## jealousy       0.5118907  1.00000000  0.8660254 -0.2548236  0.1906925
## envy           0.6546537  0.86602540  1.0000000  0.0000000  0.9449112
## disgust        0.6969321 -0.25482360  0.0000000  1.0000000  0.7483315
## regret         0.8436615  0.19069252  0.9449112  0.7483315  1.0000000
## feelinggood    0.7592566 -0.13483997  0.0000000  0.9827076  0.7071068
## relief         0.4200840 -0.52223297         NA  0.8783101  0.7302967
## happiness      0.9459053  0.20751434  0.5000000  0.8919017  0.8705715
## complexity     0.8660254 -0.18898224         NA  0.9819805  0.9958706
## relevance     -0.4950738 -0.98473193 -0.9449112  0.2760262 -0.2581989
## reliability    0.3656362 -0.09090909 -0.5000000  0.5606119  0.0000000
## relationships -0.4338609  0.13483997 -0.8660254 -0.5291503 -0.8485281
## conflict       0.0000000  0.94491118         NA -0.3273268 -0.5765567
## politeness     0.9011271 -0.11470787         NA  0.9933993  0.9862414
## notlying       0.9819805  0.50000000         NA  0.8660254  0.6933752
## unsureresp.    0.9788389  0.35328090  0.5000000  0.8142199  0.8233870
## exclusion     -0.1889822  0.86602540         NA -0.5000000 -0.7205767
## self.percept.  0.9701425  0.30151134  0.5000000  0.8451543  0.8432740
## actiongeneral  0.9701425  0.30151134  0.5000000  0.8451543  0.8432740
## actionnow      0.9449112  0.00000000         NA  1.0000000  0.9607689
## disadvantage   0.9169681  0.12666010  0.5000000  0.9230931  0.8856149
## goalinterfer   0.8574929  0.85280287  0.8660254  0.2390457  0.6708204
## socialobligat  0.8609161  0.86640023  0.6933752  0.2571429  0.5345225
## legalobligat          NA          NA         NA         NA         NA
## surprise       0.4850713  0.90453403  0.5000000 -0.1690309  0.0000000
## fairness       0.3273268  1.00000000         NA  0.0000000 -0.2773501
##               feelinggood      relief  happiness complexity  relevance
## expectation     0.5240003  0.82681063  0.6272151  0.8660254  0.0000000
## valence         0.8315218  0.87831007  0.8919017  0.9958706  0.0000000
## arousal         0.8733338  0.52615222  0.9856237  0.8660254 -0.3188964
## sadness         0.8315218  0.87831007  0.8919017  0.9958706  0.0000000
## anger           0.6741999  0.52223297  0.8992288  0.9819805 -0.4923660
## fear            0.7592566  0.42008403  0.9459053  0.8660254 -0.4950738
## jealousy       -0.1348400 -0.52223297  0.2075143 -0.1889822 -0.9847319
## envy            0.0000000          NA  0.5000000         NA -0.9449112
## disgust         0.9827076  0.87831007  0.8919017  0.9819805  0.2760262
## regret          0.7071068  0.73029674  0.8705715  0.9958706 -0.2581989
## feelinggood     1.0000000  0.77459667  0.9233805  0.9285714  0.1825742
## relief          0.7745967  1.00000000  0.6622662  0.9449112  0.4714045
## happiness       0.9233805  0.66226618  1.0000000  0.9285714 -0.1873172
## complexity      0.9285714  0.94491118  0.9285714  1.0000000  0.1889822
## relevance       0.1825742  0.47140452 -0.1873172  0.1889822  1.0000000
## reliability     0.6741999  0.17407766  0.4842001  0.3273268  0.2461830
## relationships  -0.4000000 -0.77459667 -0.5129892 -0.7857143  0.0000000
## conflict       -0.1428571 -0.75592895 -0.1428571 -0.5000000 -0.9449112
## politeness      0.9538210  0.91766294  0.9538210  0.9971765  0.1147079
## notlying        0.9449112  0.50000000  0.9449112  0.7559289 -0.5000000
## unsureresp.     0.8733338  0.52615222  0.9856237  0.8660254 -0.3188964
## exclusion      -0.3273268 -0.86602540 -0.3273268 -0.6546537 -0.8660254
## self.percept.   0.8944272  0.57735027  0.9941348  0.8910421 -0.2721655
## actiongeneral   0.8944272  0.57735027  0.9941348  0.8910421 -0.2721655
## actionnow       0.9819805  0.86602540  0.9819805  0.9819805  0.0000000
## disadvantage    0.9393364  0.72760688  0.9958635  0.9538210 -0.1143324
## goalinterfer    0.3162278  0.00000000  0.6488857  0.7559289 -0.8660254
## socialobligat   0.3779645 -0.09759001  0.6592317  0.5000000 -0.8280787
## legalobligat           NA          NA         NA         NA         NA
## surprise        0.0000000 -0.57735027  0.2294157 -0.1889822 -0.8164966
## fairness        0.1889822 -0.50000000  0.1889822 -0.1889822 -1.0000000
##               reliability relationships    conflict politeness   notlying
## expectation   -0.27477404   -0.98977827 -0.86602540  0.8260332  0.3273268
## valence        0.15289416   -0.83152184 -0.57655666  0.9862414  0.6933752
## arousal        0.51029464   -0.40755576  0.00000000  0.9011271  0.9819805
## sadness        0.15289416   -0.83152184 -0.57655666  0.9862414  0.6933752
## anger          0.09090909   -0.67419986 -0.32732684  0.9933993  0.8660254
## fear           0.36563621   -0.43386092  0.00000000  0.9011271  0.9819805
## jealousy      -0.09090909    0.13483997  0.94491118 -0.1147079  0.5000000
## envy          -0.50000000   -0.86602540          NA         NA         NA
## disgust        0.56061191   -0.52915026 -0.32732684  0.9933993  0.8660254
## regret         0.00000000   -0.84852814 -0.57655666  0.9862414  0.6933752
## feelinggood    0.67419986   -0.40000000 -0.14285714  0.9538210  0.9449112
## relief         0.17407766   -0.77459667 -0.75592895  0.9176629  0.5000000
## happiness      0.48420012   -0.51298918 -0.14285714  0.9538210  0.9449112
## complexity     0.32732684   -0.78571429 -0.50000000  0.9971765  0.7559289
## relevance      0.24618298    0.00000000 -0.94491118  0.1147079 -0.5000000
## reliability    1.00000000    0.40451992  0.65465367  0.3973597  0.8660254
## relationships  0.40451992    1.00000000  0.92857143 -0.7370435 -0.1889822
## conflict       0.65465367    0.92857143  1.00000000 -0.4335550  0.1889822
## politeness     0.39735971   -0.73704347 -0.43355498  1.0000000  0.8029551
## notlying       0.86602540   -0.18898224  0.18898224  0.8029551  1.0000000
## unsureresp.    0.51029464   -0.40755576  0.00000000  0.9011271  0.9819805
## exclusion      0.50000000    0.98198051  0.98198051 -0.5960396  0.0000000
## self.percept.  0.50251891   -0.44721360 -0.05241424  0.9226129  0.9707253
## actiongeneral  0.50251891   -0.44721360 -0.05241424  0.9226129  0.9707253
## actionnow      0.50000000   -0.65465367 -0.32732684  0.9933993  0.8660254
## disadvantage   0.46442036   -0.56360186 -0.21677749  0.9736842  0.9176629
## goalinterfer   0.00000000   -0.31622777  0.18898224  0.8029551  1.0000000
## socialobligat  0.25482360   -0.07559289  0.50000000  0.5636215  0.9449112
## legalobligat           NA            NA          NA         NA         NA
## surprise       0.30151134    0.44721360  0.94491118 -0.1147079  0.5000000
## fairness       0.86602540    0.75592895  0.94491118 -0.1147079  0.5000000
##               unsureresp.  exclusion self.percept. actiongeneral  actionnow
## expectation     0.5254237 -0.9449112    0.56415195    0.56415195  0.7559289
## valence         0.8142199 -0.7205767    0.84515425    0.84515425  0.9607689
## arousal         1.0000000 -0.1889822    0.99811498    0.99811498  0.9449112
## sadness         0.8142199 -0.7205767    0.84515425    0.84515425  0.9607689
## anger           0.9028290 -0.5000000    0.90453403    0.90453403  1.0000000
## fear            0.9788389 -0.1889822    0.97014250    0.97014250  0.9449112
## jealousy        0.3532809  0.8660254    0.30151134    0.30151134  0.0000000
## envy            0.5000000         NA    0.50000000    0.50000000         NA
## disgust         0.8142199 -0.5000000    0.84515425    0.84515425  1.0000000
## regret          0.8233870 -0.7205767    0.84327404    0.84327404  0.9607689
## feelinggood     0.8733338 -0.3273268    0.89442719    0.89442719  0.9819805
## relief          0.5261522 -0.8660254    0.57735027    0.57735027  0.8660254
## happiness       0.9856237 -0.3273268    0.99413485    0.99413485  0.9819805
## complexity      0.8660254 -0.6546537    0.89104211    0.89104211  0.9819805
## relevance      -0.3188964 -0.8660254   -0.27216553   -0.27216553  0.0000000
## reliability     0.5102946  0.5000000    0.50251891    0.50251891  0.5000000
## relationships  -0.4075558  0.9819805   -0.44721360   -0.44721360 -0.6546537
## conflict        0.0000000  0.9819805   -0.05241424   -0.05241424 -0.3273268
## politeness      0.9011271 -0.5960396    0.92261291    0.92261291  0.9933993
## notlying        0.9819805  0.0000000    0.97072534    0.97072534  0.8660254
## unsureresp.     1.0000000 -0.1889822    0.99811498    0.99811498  0.9449112
## exclusion      -0.1889822  1.0000000   -0.24019223   -0.24019223 -0.5000000
## self.percept.   0.9981150 -0.2401922    1.00000000    1.00000000  0.9607689
## actiongeneral   0.9981150 -0.2401922    1.00000000    1.00000000  0.9607689
## actionnow       0.9449112 -0.5000000    0.96076892    0.96076892  1.0000000
## disadvantage    0.9661950 -0.3973597    0.98019606    0.98019606  0.9933993
## goalinterfer    0.7364597  0.0000000    0.70710678    0.70710678  0.8660254
## socialobligat   0.7702080  0.3273268    0.73246702    0.73246702  0.6546537
## legalobligat           NA         NA            NA            NA         NA
## surprise        0.3905667  0.8660254    0.33333333    0.33333333  0.0000000
## fairness        0.3273268  0.8660254    0.27735010    0.27735010  0.0000000
##               disadvantage goalinterfer socialobligat legalobligat   surprise
## expectation      0.6745135    0.3682298    0.15404160           NA -0.3905667
## valence          0.9230931    0.4780914    0.37142857           NA -0.1690309
## arousal          0.9661950    0.7364597    0.77020798           NA  0.3905667
## sadness          0.9230931    0.4780914    0.37142857           NA -0.1690309
## anger            0.8866207    0.8528029    0.76447079           NA  0.3015113
## fear             0.9169681    0.8574929    0.86091606           NA  0.4850713
## jealousy         0.1266601    0.8528029    0.86640023           NA  0.9045340
## envy             0.5000000    0.8660254    0.69337525           NA  0.5000000
## disgust          0.9230931    0.2390457    0.25714286           NA -0.1690309
## regret           0.8856149    0.6708204    0.53452248           NA  0.0000000
## feelinggood      0.9393364    0.3162278    0.37796447           NA  0.0000000
## relief           0.7276069    0.0000000   -0.09759001           NA -0.5773503
## happiness        0.9958635    0.6488857    0.65923172           NA  0.2294157
## complexity       0.9538210    0.7559289    0.50000000           NA -0.1889822
## relevance       -0.1143324   -0.8660254   -0.82807867           NA -0.8164966
## reliability      0.4644204    0.0000000    0.25482360           NA  0.3015113
## relationships   -0.5636019   -0.3162278   -0.07559289           NA  0.4472136
## conflict        -0.2167775    0.1889822    0.50000000           NA  0.9449112
## politeness       0.9736842    0.8029551    0.56362148           NA -0.1147079
## notlying         0.9176629    1.0000000    0.94491118           NA  0.5000000
## unsureresp.      0.9661950    0.7364597    0.77020798           NA  0.3905667
## exclusion       -0.3973597    0.0000000    0.32732684           NA  0.8660254
## self.percept.    0.9801961    0.7071068    0.73246702           NA  0.3333333
## actiongeneral    0.9801961    0.7071068    0.73246702           NA  0.3333333
## actionnow        0.9933993    0.8660254    0.65465367           NA  0.0000000
## disadvantage     1.0000000    0.5940885    0.59172634           NA  0.1400280
## goalinterfer     0.5940885    1.0000000    0.95618289           NA  0.7071068
## socialobligat    0.5917263    0.9561829    1.00000000           NA  0.8451543
## legalobligat            NA           NA            NA           NA         NA
## surprise         0.1400280    0.7071068    0.84515425           NA  1.0000000
## fairness         0.1147079    0.5000000    0.75592895           NA  1.0000000
##                 fairness
## expectation   -0.6546537
## valence       -0.2773501
## arousal        0.3273268
## sadness       -0.2773501
## anger          0.0000000
## fear           0.3273268
## jealousy       1.0000000
## envy                  NA
## disgust        0.0000000
## regret        -0.2773501
## feelinggood    0.1889822
## relief        -0.5000000
## happiness      0.1889822
## complexity    -0.1889822
## relevance     -1.0000000
## reliability    0.8660254
## relationships  0.7559289
## conflict       0.9449112
## politeness    -0.1147079
## notlying       0.5000000
## unsureresp.    0.3273268
## exclusion      0.8660254
## self.percept.  0.2773501
## actiongeneral  0.2773501
## actionnow      0.0000000
## disadvantage   0.1147079
## goalinterfer   0.5000000
## socialobligat  0.7559289
## legalobligat          NA
## surprise       1.0000000
## fairness       1.0000000

Ending GoT - DI

mat_got_DI <- corr_scenario_DI$cor_matrix[[which(corr_scenario$Scenario_Content == "ending_GoT")]]


mat_long_got_DI <- melt(mat_got_DI, varnames = c("Var1", "Var2"), value.name = "r")

limits <- c(-1, 1) 

ggplot(mat_long_got_DI, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: ending GoT DI")

strong_got_DI <- mat_long_got_DI %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

Correlation Matrix by Scenario only for no DI

corr_scenario_noDI <- dat_short %>%
  filter(want_to_know_bin == 0) %>%      
  group_by(Scenario_Content) %>%          
  summarise(
    cor_matrix = list(
      cor(
        as.data.frame(across(all_of(motive_vars)) %>% 
                        mutate(across(everything(), ~ ifelse(.x == -99, NA, .x)))),
        use = "pairwise.complete.obs"
      )
    ),
    .groups = "drop"
  )

corr_scenario_noDI$cor_matrix[[which(corr_scenario$Scenario_Content == "nutritional_deficiencies")]]
##               expectation     valence     arousal     sadness       anger
## expectation    1.00000000  0.50756887  0.40747208  0.35536810  0.40269175
## valence        0.50756887  1.00000000  0.70882879  0.69338302  0.64157032
## arousal        0.40747208  0.70882879  1.00000000  0.59863630  0.50791663
## sadness        0.35536810  0.69338302  0.59863630  1.00000000  0.69933363
## anger          0.40269175  0.64157032  0.50791663  0.69933363  1.00000000
## fear           0.48521716  0.65263250  0.65636846  0.60716959  0.47291711
## jealousy       0.50445861  0.48997421  0.46408811  0.52742876  0.64275615
## envy           0.43723557  0.56858340  0.43267832  0.68078565  0.68791976
## disgust        0.42040720  0.52321076  0.52458437  0.59233409  0.56771037
## regret         0.43263790  0.55428568  0.55909763  0.63393937  0.44906503
## feelinggood    0.31550658  0.47231291  0.47304654  0.42878757  0.30601004
## relief         0.24034165  0.36541895  0.45949891  0.32376513  0.20109279
## happiness      0.39341813  0.54281251  0.52995976  0.42178205  0.49782742
## complexity     0.37817534  0.46217687  0.41449852  0.35557337  0.38475028
## relevance      0.02172106  0.02369033 -0.02880198  0.00507797 -0.04667937
## reliability   -0.07761275 -0.03291809  0.03541059 -0.12794684 -0.01254650
## relationships  0.23339996  0.42968392  0.43929761  0.44737299  0.36637434
## conflict       0.23452287  0.41013911  0.59265042  0.45773175  0.32881421
## politeness     0.21153924  0.44681315  0.55670416  0.29652955  0.38563190
## notlying       0.24547515  0.39174075  0.34925260  0.27857439  0.45430505
## unsureresp.    0.39227330  0.33314554  0.31471606  0.44164885  0.41896091
## exclusion      0.37488488  0.60086298  0.62133673  0.64263042  0.61581286
## self.percept.  0.21663601  0.29470611  0.17691634  0.30344222  0.29456503
## actiongeneral  0.08378885  0.18591326  0.15982691  0.06689318  0.01016876
## actionnow      0.15428808  0.07310046  0.11706301  0.08386663  0.04014657
## disadvantage   0.47136725  0.44383993  0.50364130  0.42605258  0.51994169
## goalinterfer   0.22447773  0.38053997  0.41384353  0.49832350  0.44654456
## socialobligat  0.24102440  0.27068457  0.43721261  0.22187142  0.19203064
## legalobligat   0.17808274  0.30639221  0.35089125  0.27876169  0.35044816
## surprise       0.29827511  0.37030262  0.50720410  0.51896736  0.40035685
## fairness       0.14161404  0.34615068  0.28078650  0.34104939  0.42679437
##                       fear     jealousy       envy      disgust      regret
## expectation    0.485217162  0.504458607 0.43723557  0.420407201  0.43263790
## valence        0.652632504  0.489974208 0.56858340  0.523210758  0.55428568
## arousal        0.656368456  0.464088110 0.43267832  0.524584372  0.55909763
## sadness        0.607169591  0.527428755 0.68078565  0.592334092  0.63393937
## anger          0.472917108  0.642756151 0.68791976  0.567710370  0.44906503
## fear           1.000000000  0.501233759 0.42192079  0.455312898  0.56520309
## jealousy       0.501233759  1.000000000 0.63511260  0.573027355  0.49966714
## envy           0.421920792  0.635112601 1.00000000  0.682250651  0.52265109
## disgust        0.455312898  0.573027355 0.68225065  1.000000000  0.63274007
## regret         0.565203088  0.499667137 0.52265109  0.632740073  1.00000000
## feelinggood    0.468551753  0.204541233 0.35196652  0.357377478  0.37449702
## relief         0.419834749  0.322822968 0.22467737  0.205977270  0.31278750
## happiness      0.425607033  0.325998244 0.39772944  0.323225055  0.32710280
## complexity     0.481688470  0.451457089 0.33729964  0.198600577  0.32322085
## relevance     -0.008509743 -0.051233529 0.01181541 -0.300154738 -0.05118471
## reliability   -0.102221185  0.097354096 0.07413667 -0.064594150 -0.06077961
## relationships  0.438403681  0.297344573 0.43815642  0.433327589  0.45957973
## conflict       0.466195797  0.242090226 0.41547534  0.553157447  0.58426018
## politeness     0.395339095  0.312508560 0.35835166  0.379606564  0.29282176
## notlying       0.352279374  0.384227996 0.38604178  0.532024073  0.34915639
## unsureresp.    0.384733092  0.439277571 0.46331370  0.291287522  0.34865467
## exclusion      0.513207490  0.527077954 0.55869872  0.718996270  0.59252629
## self.percept.  0.291320971  0.269742231 0.33484367  0.292342160  0.20279698
## actiongeneral  0.169848720  0.009359353 0.03592996  0.004131042  0.15581739
## actionnow      0.002665470  0.063743949 0.11513492 -0.105194636  0.05637086
## disadvantage   0.392048950  0.422911862 0.42114370  0.367533672  0.44717641
## goalinterfer   0.412334921  0.399369296 0.49051589  0.361050417  0.43378830
## socialobligat  0.343366431  0.287976403 0.24552471  0.303460515  0.24805682
## legalobligat   0.254743682  0.286899675 0.35089077  0.413845716  0.29494534
## surprise       0.429005371  0.438502456 0.44116045  0.557364909  0.37955473
## fairness       0.267676791  0.295736432 0.35412367  0.471935093  0.41236412
##               feelinggood     relief happiness complexity    relevance
## expectation    0.31550658 0.24034165 0.3934181  0.3781753  0.021721061
## valence        0.47231291 0.36541895 0.5428125  0.4621769  0.023690327
## arousal        0.47304654 0.45949891 0.5299598  0.4144985 -0.028801979
## sadness        0.42878757 0.32376513 0.4217821  0.3555734  0.005077970
## anger          0.30601004 0.20109279 0.4978274  0.3847503 -0.046679367
## fear           0.46855175 0.41983475 0.4256070  0.4816885 -0.008509743
## jealousy       0.20454123 0.32282297 0.3259982  0.4514571 -0.051233529
## envy           0.35196652 0.22467737 0.3977294  0.3372996  0.011815412
## disgust        0.35737748 0.20597727 0.3232251  0.1986006 -0.300154738
## regret         0.37449702 0.31278750 0.3271028  0.3232208 -0.051184711
## feelinggood    1.00000000 0.61266761 0.6377236  0.3656149  0.076440062
## relief         0.61266761 1.00000000 0.5704244  0.4275381  0.222274937
## happiness      0.63772357 0.57042442 1.0000000  0.3190419  0.151430147
## complexity     0.36561488 0.42753812 0.3190419  1.0000000  0.131079293
## relevance      0.07644006 0.22227494 0.1514301  0.1310793  1.000000000
## reliability    0.08133406 0.21677449 0.1163650  0.1055344  0.360814250
## relationships  0.43775351 0.29198049 0.4751129  0.4460179  0.050347757
## conflict       0.47874998 0.28633764 0.4439669  0.2708745 -0.020974319
## politeness     0.35279107 0.18764645 0.4160233  0.3110270 -0.062919373
## notlying       0.25526845 0.06780258 0.3200424  0.2946953 -0.237902380
## unsureresp.    0.27857714 0.18438889 0.1805470  0.5331399  0.090415845
## exclusion      0.45662986 0.31156652 0.4687154  0.4133360 -0.150824361
## self.percept.  0.30477657 0.18113550 0.2476417  0.3386084  0.172085003
## actiongeneral  0.37732729 0.52153934 0.3552128  0.2157974  0.465664726
## actionnow      0.16111200 0.21087122 0.2907517 -0.0390589  0.609447145
## disadvantage   0.37547806 0.23466969 0.3815097  0.4130174  0.090876686
## goalinterfer   0.42124449 0.32807969 0.4909687  0.2118347  0.058869782
## socialobligat  0.32461607 0.27698688 0.4535561  0.3793059  0.160920909
## legalobligat   0.30662275 0.20575839 0.2824792  0.4547579  0.012120353
## surprise       0.32350914 0.27083988 0.3011490  0.3123142 -0.128450120
## fairness       0.16211679 0.04883930 0.3327058  0.3225669 -0.118586998
##                reliability relationships    conflict  politeness    notlying
## expectation   -0.077612745    0.23339996  0.23452287  0.21153924  0.24547515
## valence       -0.032918090    0.42968392  0.41013911  0.44681315  0.39174075
## arousal        0.035410587    0.43929761  0.59265042  0.55670416  0.34925260
## sadness       -0.127946839    0.44737299  0.45773175  0.29652955  0.27857439
## anger         -0.012546498    0.36637434  0.32881421  0.38563190  0.45430505
## fear          -0.102221185    0.43840368  0.46619580  0.39533910  0.35227937
## jealousy       0.097354096    0.29734457  0.24209023  0.31250856  0.38422800
## envy           0.074136668    0.43815642  0.41547534  0.35835166  0.38604178
## disgust       -0.064594150    0.43332759  0.55315745  0.37960656  0.53202407
## regret        -0.060779614    0.45957973  0.58426018  0.29282176  0.34915639
## feelinggood    0.081334063    0.43775351  0.47874998  0.35279107  0.25526845
## relief         0.216774494    0.29198049  0.28633764  0.18764645  0.06780258
## happiness      0.116365025    0.47511291  0.44396694  0.41602331  0.32004235
## complexity     0.105534373    0.44601790  0.27087445  0.31102700  0.29469532
## relevance      0.360814250    0.05034776 -0.02097432 -0.06291937 -0.23790238
## reliability    1.000000000    0.02644397 -0.03033917  0.03165250  0.02114553
## relationships  0.026443966    1.00000000  0.63826194  0.43349731  0.60669998
## conflict      -0.030339169    0.63826194  1.00000000  0.50201380  0.46261094
## politeness     0.031652502    0.43349731  0.50201380  1.00000000  0.36401348
## notlying       0.021145534    0.60669998  0.46261094  0.36401348  1.00000000
## unsureresp.   -0.066927880    0.39576960  0.18216885  0.08098804  0.30820859
## exclusion     -0.022841843    0.68197473  0.69676999  0.53474953  0.62809134
## self.percept. -0.002888018    0.40891139  0.15538879  0.36093595  0.18686875
## actiongeneral  0.315875981    0.11014485  0.08533249  0.09560039 -0.15145336
## actionnow      0.330981093    0.08916321  0.02860439 -0.05349988 -0.21645301
## disadvantage   0.049927473    0.52625146  0.43201179  0.35480905  0.41186255
## goalinterfer   0.084244635    0.50270858  0.37848841  0.35159045  0.33104194
## socialobligat  0.066905248    0.34921242  0.26700066  0.42690835  0.20797168
## legalobligat  -0.006494485    0.56322939  0.21020338  0.44609376  0.50822012
## surprise      -0.079318154    0.31312312  0.44204042  0.48318632  0.32220368
## fairness       0.034561349    0.57633222  0.39248788  0.28299585  0.70116509
##                unsureresp.   exclusion self.percept. actiongeneral   actionnow
## expectation    0.392273300  0.37488488   0.216636014   0.083788845  0.15428808
## valence        0.333145542  0.60086298   0.294706107   0.185913261  0.07310046
## arousal        0.314716060  0.62133673   0.176916337   0.159826911  0.11706301
## sadness        0.441648854  0.64263042   0.303442221   0.066893180  0.08386663
## anger          0.418960911  0.61581286   0.294565035   0.010168764  0.04014657
## fear           0.384733092  0.51320749   0.291320971   0.169848720  0.00266547
## jealousy       0.439277571  0.52707795   0.269742231   0.009359353  0.06374395
## envy           0.463313699  0.55869872   0.334843669   0.035929962  0.11513492
## disgust        0.291287522  0.71899627   0.292342160   0.004131042 -0.10519464
## regret         0.348654674  0.59252629   0.202796976   0.155817393  0.05637086
## feelinggood    0.278577136  0.45662986   0.304776571   0.377327288  0.16111200
## relief         0.184388894  0.31156652   0.181135500   0.521539337  0.21087122
## happiness      0.180547009  0.46871542   0.247641673   0.355212774  0.29075173
## complexity     0.533139867  0.41333604   0.338608420   0.215797359 -0.03905890
## relevance      0.090415845 -0.15082436   0.172085003   0.465664726  0.60944715
## reliability   -0.066927880 -0.02284184  -0.002888018   0.315875981  0.33098109
## relationships  0.395769596  0.68197473   0.408911388   0.110144852  0.08916321
## conflict       0.182168846  0.69676999   0.155388795   0.085332492  0.02860439
## politeness     0.080988041  0.53474953   0.360935953   0.095600389 -0.05349988
## notlying       0.308208591  0.62809134   0.186868746  -0.151453358 -0.21645301
## unsureresp.    1.000000000  0.40472027   0.314664234  -0.004332025  0.01374481
## exclusion      0.404720274  1.00000000   0.254157552  -0.021008841 -0.07125674
## self.percept.  0.314664234  0.25415755   1.000000000   0.262801576  0.07804517
## actiongeneral -0.004332025 -0.02100884   0.262801576   1.000000000  0.41588901
## actionnow      0.013744813 -0.07125674   0.078045168   0.415889008  1.00000000
## disadvantage   0.503223051  0.56858830   0.216124847   0.041625637  0.10398110
## goalinterfer   0.339235347  0.49863882   0.302478780   0.148633438  0.16500747
## socialobligat  0.233362257  0.32287535   0.476300207   0.373983362  0.27700630
## legalobligat   0.463978017  0.41466188   0.424257344   0.125540183 -0.03500317
## surprise       0.213762266  0.50793266   0.177206024   0.031958948  0.03933498
## fairness       0.287480648  0.52284411   0.326774952  -0.005473033 -0.13911626
##               disadvantage goalinterfer socialobligat legalobligat    surprise
## expectation     0.47136725   0.22447773    0.24102440  0.178082737  0.29827511
## valence         0.44383993   0.38053997    0.27068457  0.306392214  0.37030262
## arousal         0.50364130   0.41384353    0.43721261  0.350891252  0.50720410
## sadness         0.42605258   0.49832350    0.22187142  0.278761688  0.51896736
## anger           0.51994169   0.44654456    0.19203064  0.350448158  0.40035685
## fear            0.39204895   0.41233492    0.34336643  0.254743682  0.42900537
## jealousy        0.42291186   0.39936930    0.28797640  0.286899675  0.43850246
## envy            0.42114370   0.49051589    0.24552471  0.350890771  0.44116045
## disgust         0.36753367   0.36105042    0.30346051  0.413845716  0.55736491
## regret          0.44717641   0.43378830    0.24805682  0.294945343  0.37955473
## feelinggood     0.37547806   0.42124449    0.32461607  0.306622753  0.32350914
## relief          0.23466969   0.32807969    0.27698688  0.205758391  0.27083988
## happiness       0.38150969   0.49096875    0.45355607  0.282479227  0.30114904
## complexity      0.41301743   0.21183473    0.37930592  0.454757879  0.31231416
## relevance       0.09087669   0.05886978    0.16092091  0.012120353 -0.12845012
## reliability     0.04992747   0.08424464    0.06690525 -0.006494485 -0.07931815
## relationships   0.52625146   0.50270858    0.34921242  0.563229393  0.31312312
## conflict        0.43201179   0.37848841    0.26700066  0.210203382  0.44204042
## politeness      0.35480905   0.35159045    0.42690835  0.446093760  0.48318632
## notlying        0.41186255   0.33104194    0.20797168  0.508220119  0.32220368
## unsureresp.     0.50322305   0.33923535    0.23336226  0.463978017  0.21376227
## exclusion       0.56858830   0.49863882    0.32287535  0.414661878  0.50793266
## self.percept.   0.21612485   0.30247878    0.47630021  0.424257344  0.17720602
## actiongeneral   0.04162564   0.14863344    0.37398336  0.125540183  0.03195895
## actionnow       0.10398110   0.16500747    0.27700630 -0.035003171  0.03933498
## disadvantage    1.00000000   0.56443239    0.20416084  0.453749680  0.35878597
## goalinterfer    0.56443239   1.00000000    0.31843970  0.383162967  0.31222504
## socialobligat   0.20416084   0.31843970    1.00000000  0.478746325  0.36801136
## legalobligat    0.45374968   0.38316297    0.47874633  1.000000000  0.33496204
## surprise        0.35878597   0.31222504    0.36801136  0.334962035  1.00000000
## fairness        0.36467448   0.42317115    0.28599406  0.593106498  0.32032763
##                   fairness
## expectation    0.141614036
## valence        0.346150677
## arousal        0.280786503
## sadness        0.341049388
## anger          0.426794369
## fear           0.267676791
## jealousy       0.295736432
## envy           0.354123665
## disgust        0.471935093
## regret         0.412364121
## feelinggood    0.162116792
## relief         0.048839300
## happiness      0.332705828
## complexity     0.322566855
## relevance     -0.118586998
## reliability    0.034561349
## relationships  0.576332216
## conflict       0.392487876
## politeness     0.282995854
## notlying       0.701165087
## unsureresp.    0.287480648
## exclusion      0.522844113
## self.percept.  0.326774952
## actiongeneral -0.005473033
## actionnow     -0.139116257
## disadvantage   0.364674478
## goalinterfer   0.423171151
## socialobligat  0.285994058
## legalobligat   0.593106498
## surprise       0.320327633
## fairness       1.000000000

DI vs. no DI – ending got correlations

mat_got_noDI <- corr_scenario_noDI$cor_matrix[[which(corr_scenario$Scenario_Content == "ending_GoT")]]


mat_long_got_noDI <- melt(mat_got_noDI, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_got_noDI, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: ending GoT no DI")

strong_got_noDI <- mat_long_got_noDI %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

altern_recent_purchase DI vs. no DI

mat_purchase_DI <- corr_scenario_DI$cor_matrix[[which(corr_scenario$Scenario_Content == "altern_recent_purchase")]]


mat_long_purchase_DI <- melt(mat_purchase_DI, varnames = c("Var1", "Var2"), value.name = "r")

limits <- c(-1, 1) 

ggplot(mat_long_purchase_DI, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: altern recent purchase -- DI")

strong_purchase_DI <- mat_long_purchase_DI %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

altern recent purchase – no DI

mat_purchase_noDI <- corr_scenario_noDI$cor_matrix[[which(corr_scenario$Scenario_Content == "altern_recent_purchase")]]


mat_long_purchase_noDI <- melt(mat_purchase_noDI, varnames = c("Var1", "Var2"), value.name = "r")


limits <- c(-1, 1) 

ggplot(mat_long_purchase_noDI, aes(x = Var1, y = Var2, fill = r)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(r, 2)), size = 3) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       limits = limits) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.ticks = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )+
  ggtitle("Correlation matrix: altern recent purchase -- no DI")

strong ratings – scenario purchase – no DI

strong_purchase_noDI <- mat_long_purchase_noDI %>%
  filter(as.numeric(factor(Var1)) < as.numeric(factor(Var2))) %>%
  filter(abs(r) > 0.5) %>%
  mutate(direction = ifelse(r > 0, "positive", "negative")) %>%
  arrange(desc(abs(r)))

10.4. Correlations between Motives and DI Response by Scenario

Hiv

Unsicher ob Korrelation zwischen want to know bin und Motivratings sinnvoll ist (unterschiedliche Gruppengröße und )

dat_hiv <- dat_short %>%
  filter(Scenario_Content == "hiv_test")

cor_DI_hiv <- sapply(motive_vars, function(x) {
  cor(dat_hiv[[x]], dat_hiv$want_to_know_bin, use = "pairwise.complete.obs")
})

cor_DI_hiv
##   expectation       valence       arousal       sadness         anger 
##   0.051967414   0.031661773  -0.249105568   0.047818491   0.070988602 
##          fear      jealousy          envy       disgust        regret 
##   0.033061800   0.131429006   0.047809416   0.083127979   0.083768105 
##   feelinggood        relief     happiness    complexity     relevance 
##  -0.066836244   0.027426281   0.088958356   0.085994502  -0.108597055 
##   reliability relationships      conflict    politeness      notlying 
##   0.060685796   0.003811452  -0.178637906   0.019642422   0.090584225 
##   unsureresp.     exclusion self.percept. actiongeneral     actionnow 
##   0.040008581   0.047003563  -0.185068274   0.030700365   0.030580217 
##  disadvantage  goalinterfer socialobligat  legalobligat      surprise 
##   0.056648083   0.050780458   0.027317172   0.070736372   0.018803910 
##      fairness 
##   0.045627212

Plot mit Korrelationen . Positive corr = M1 (DI) > M0 (no DI)

# tibble
cor_DI_hiv_df <- tibble(
  rating = names(cor_DI_hiv),
  r = cor_DI_hiv
)

# Barplot
#Punkt-Biserial-Korrelation (Pearson) (metrische und binäre Variable)
ggplot(cor_DI_hiv_df, aes(x = reorder(rating, r), y = r, fill = r)) +
  geom_col() +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0, limits = c(-1, 1)) +
  coord_flip() + 
  theme_minimal() +
  labs(
    title = "Correlation Ratings vs. want_to_know_bin - hiv test",
    x = "Rating",
    y = "r"
  )

Kardashian

dat_kardashian <- dat_short %>%
  filter(Scenario_Content == "Kardashian_home")

cor_DI_kardashian <- sapply(motive_vars, function(x) {
  cor(dat_kardashian[[x]], dat_kardashian$want_to_know_bin, use = "pairwise.complete.obs")
})

cor_DI_kardashian
##   expectation       valence       arousal       sadness         anger 
##  -0.149787911  -0.077744947  -0.083134848  -0.097466264  -0.002140862 
##          fear      jealousy          envy       disgust        regret 
##  -0.078663975  -0.161083044  -0.161061364  -0.068497476  -0.119500724 
##   feelinggood        relief     happiness    complexity     relevance 
##  -0.163037523  -0.020156523  -0.169415093  -0.113025986  -0.169730656 
##   reliability relationships      conflict    politeness      notlying 
##  -0.109653287  -0.048878873  -0.047559520  -0.034338086   0.016146713 
##   unsureresp.     exclusion self.percept. actiongeneral     actionnow 
##  -0.033349563   0.006038017  -0.063315004  -0.080015142  -0.107573680 
##  disadvantage  goalinterfer socialobligat  legalobligat      surprise 
##  -0.055367217  -0.075548357   0.041495464  -0.025483300  -0.164946583 
##      fairness 
##   0.027141479
# In ein tibble umwandeln
cor_DI_kardashian_df <- tibble(
  rating = names(cor_DI_kardashian),
  r = cor_DI_kardashian
)

# Barplot
#Punkt-Biserial-Korrelation (Pearson) (metrische und binäre Variable)
ggplot(cor_DI_kardashian_df, aes(x = reorder(rating, r), y = r, fill = r)) +
  geom_col() +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0, limits = c(-1, 1)) +
  coord_flip() + 
  theme_minimal() +
  labs(
    title = "Correlation Ratings vs. want_to_know_bin - Kardashian",
    x = "Rating",
    y = "r"
  )

Mean for DI and No DI for Motive == reliability

Insgesamt wird bei DI das motive reliability geringer gewertet als bei no DI

dat_short %>%
  group_by(want_to_know_bin) %>%
  summarise(
    mean_reliability = mean(reliability[reliability != -99], na.rm = TRUE),
    sd_reliability = sd(reliability[reliability != -99], na.rm = TRUE),
    n = sum(reliability != -99)
  )
## # A tibble: 2 × 4
##   want_to_know_bin mean_reliability sd_reliability     n
##              <dbl>            <dbl>          <dbl> <int>
## 1                0             4.57           1.48  2214
## 2                1             3.27           1.74   864

Mean for Hiv Test splitted by DI vs. no DI by motive

dat_hiv %>%
  group_by(want_to_know_bin) %>%
  summarise(
    across(all_of(motive_vars), 
           list(mean = ~mean(.x, na.rm = TRUE),
                sd = ~sd(.x, na.rm = TRUE)),
           .names = "{.col}_{.fn}"),
    n = n()
  )
## # A tibble: 2 × 64
##   want_to_know_bin expectation_mean expectation_sd valence_mean valence_sd
##              <dbl>            <dbl>          <dbl>        <dbl>      <dbl>
## 1                0           -0.673          20.2          1.63      14.5 
## 2                1            3.43            2.37         3.43       2.51
## # ℹ 59 more variables: arousal_mean <dbl>, arousal_sd <dbl>,
## #   sadness_mean <dbl>, sadness_sd <dbl>, anger_mean <dbl>, anger_sd <dbl>,
## #   fear_mean <dbl>, fear_sd <dbl>, jealousy_mean <dbl>, jealousy_sd <dbl>,
## #   envy_mean <dbl>, envy_sd <dbl>, disgust_mean <dbl>, disgust_sd <dbl>,
## #   regret_mean <dbl>, regret_sd <dbl>, feelinggood_mean <dbl>,
## #   feelinggood_sd <dbl>, relief_mean <dbl>, relief_sd <dbl>,
## #   happiness_mean <dbl>, happiness_sd <dbl>, complexity_mean <dbl>, …
dat_hiv <- dat_hiv %>%
  mutate(across(all_of(motive_vars), ~ ifelse(.x == -99, NA, .x)))

Plot HIV Mean of Motive Rating depending on want to know == 1 or 0

Unsicher ob das Sinn macht weil Gruppen unterschiedlich groß

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.2     ✔ tibble    3.2.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
dat_hiv_summary <- dat_hiv %>%
  group_by(want_to_know_bin) %>%
  summarise(
    across(all_of(motive_vars),
           list(mean = ~mean(ifelse(.x == -99, NA, .x), na.rm = TRUE),
                sd   = ~sd(ifelse(.x == -99, NA, .x), na.rm = TRUE)),
           .names = "{.col}_{.fn}"),
    n = n()
  )

dat_hiv_long <- dat_hiv_summary %>%
  pivot_longer(
    cols = -c(want_to_know_bin, n),
    names_to = c("motive", ".value"),
    names_sep = "_"
  )

dat_hiv_long <- dat_hiv_long %>%
  group_by(motive) %>%
  mutate(mean_overall = mean(mean, na.rm = TRUE)) %>%
  ungroup()


ggplot(dat_hiv_long, aes(x = reorder(motive, mean), y = mean,
                         fill = as.factor(want_to_know_bin))) +
  geom_col(position = "dodge") +
  coord_flip() +
  theme_minimal() +
  labs(
    title = "Scenario Hiv: Mean of motive rating depending on DI vs. no DI",
    x = "Motive",
    y = "Mean rating",
    fill = "Want to know (1 = no)"
  )

Correlation matrix for all scenario between want to know = 1/0 and motive

# Funktion, die Korrelation pro Szenario berechnet
cor_matrix <- dat_short %>%
  group_by(Scenario_Content) %>%
  summarise(across(all_of(motive_vars),
                   ~ cor(.x, want_to_know_bin, use = "pairwise.complete.obs"),
                   .names = "cor_{col}"))

11. Cluster-Analysen der Korrelationsstrukturen

Gleiche Heatmap wie oben aber kompakter

# Liste, die pro Szenario eine Korrelationsmatrix speichert
cor_list <- dat_short %>%
  group_by(Scenario_Content) %>%
  group_map(~ cor(select(.x, all_of(motive_vars)), use = "pairwise.complete.obs"), .keep = TRUE)

# Optional: Namen für die Liste
names(cor_list) <- unique(dat_short$Scenario_Content)
#for schleife für alle szenarien
for(i in seq_along(cor_list)) {
  pheatmap(cor_list[[i]], 
           main = names(cor_list)[i], 
           cluster_rows = FALSE, 
           cluster_cols = FALSE,
           show_rownames = TRUE,
           show_colnames = TRUE)
}

Motive innerhalb eines Szenarios clustern . Beispiel hiv_test

library(stats)


cor_mat <- cor_list[["hiv_test"]]

# Distanzmatrix: 1 - Korrelation
dist_motives_hiv <- as.dist(1 - cor_mat)

# Hierarchisches Clustering
hc_motives_hiv <- hclust(dist_motives_hiv, method = "ward.D2")

# Dendrogramm
plot(hc_motives_hiv, main = "Motiv-Cluster: HIV Test Scenario")

# k Cluster definieren
clusters_hiv5 <- cutree(hc_motives_hiv, k = 5)
clusters_hiv5
##   expectation       valence       arousal       sadness         anger 
##             1             1             2             2             2 
##          fear      jealousy          envy       disgust        regret 
##             3             1             1             4             2 
##   feelinggood        relief     happiness    complexity     relevance 
##             1             3             1             2             5 
##   reliability relationships      conflict    politeness      notlying 
##             1             3             3             3             3 
##   unsureresp.     exclusion self.percept. actiongeneral     actionnow 
##             2             3             4             3             5 
##  disadvantage  goalinterfer socialobligat  legalobligat      surprise 
##             3             3             3             3             2 
##      fairness 
##             3

Cluster analysis across all scenarios

Jede Zeile = ein Szenario, jede Spalte = die Korrelation eines Motivpaars

# obere Dreiecksmatrix in Vektor umwandeln
upper_tri_vector <- function(cor_mat){
  cor_mat[upper.tri(cor_mat)]
}

# Für alle Szenarien
cor_vectors <- lapply(cor_list, upper_tri_vector)

# In Matrix umwandeln
cor_matrix_all <- do.call(rbind, cor_vectors)
rownames(cor_matrix_all) <- names(cor_list)

Szenarien clustern mit ähnlicher motivstruktur

Correlation Patterns sehr unübersichtlich im Plot

dist_scenarios <- dist(cor_matrix_all, method = "euclidean")
hc_scenarios <- hclust(dist_scenarios, method = "ward.D2")

# Dendrogramm 
plot(hc_scenarios, main = "Cluster of Scenarios by Motiv Structure")

clusters_scenarios5 <- cutree(hc_scenarios, k = 5)


library(pheatmap)
pheatmap(cor_matrix_all,
         cluster_rows = TRUE, 
         cluster_cols = TRUE,  
         show_rownames = TRUE,
         show_colnames = TRUE,
         main = "Szenario-Motiv Correlation Patterns")

12. Explorative Faktorenanalyse

1. Daten vorbereiten

library(psych)
## 
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
library(GPArotation)
## 
## Attaching package: 'GPArotation'
## The following objects are masked from 'package:psych':
## 
##     equamax, varimin
#  -99 Werte in NA 
dat_motives <- dat_short %>%
  select(all_of(motive_vars)) %>%
  mutate(across(everything(), ~ na_if(.x, -99)))

# Optional: Zeilen mit zu vielen NAs entfernen
#dat_motives <- na.omit(dat_motives)

2. Faktoranzahl bestimmen

# Korrelation prüfen
cor_mat <- cor(dat_motives, use = "pairwise.complete.obs")

# Scree-Plot
fa.parallel(dat_motives, fa = "fa", n.iter = 100, main = "Parallel Analysis for Factor Number")

## Parallel analysis suggests that the number of factors =  8  and the number of components =  NA

3. EFA durchführen

efa_result <- fa(dat_motives,
                 nfactors = 5,      # Anzahl Faktoren aus Parallelanalyse/Scree
                 rotate = "oblimin", # oder "varimax" für orthogonal
                 fm = "pa")          # "ml" = Maximum Likelihood, alternative: "pa" = Principal Axis

# Ergebnis anzeigen
print(efa_result, cutoff = 0.3) # Zeigt nur Ladungen >= 0.3
## Factor Analysis using method =  pa
## Call: fa(r = dat_motives, nfactors = 5, rotate = "oblimin", fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                 PA1   PA4   PA2   PA3   PA5   h2   u2 com
## expectation    0.61 -0.07  0.15  0.00 -0.02 0.41 0.59 1.1
## valence        0.85 -0.08  0.01  0.02  0.02 0.70 0.30 1.0
## arousal        0.70  0.05 -0.02 -0.09  0.16 0.56 0.44 1.1
## sadness        0.86 -0.03 -0.03 -0.03  0.00 0.69 0.31 1.0
## anger          0.74  0.07 -0.08  0.06 -0.02 0.59 0.41 1.1
## fear           0.65 -0.03  0.23  0.08 -0.01 0.60 0.40 1.3
## jealousy       0.11 -0.02  0.00  0.67  0.13 0.61 0.39 1.1
## envy           0.06  0.02 -0.06  0.58  0.21 0.53 0.47 1.3
## disgust        0.56  0.21 -0.24  0.01  0.04 0.42 0.58 1.7
## regret         0.51  0.00 -0.06  0.16  0.07 0.39 0.61 1.3
## feelinggood    0.01 -0.02  0.04  0.00  0.84 0.72 0.28 1.0
## relief         0.08  0.05  0.34  0.06  0.42 0.52 0.48 2.1
## happiness      0.03  0.01  0.04  0.03  0.76 0.64 0.36 1.0
## complexity     0.27  0.24  0.00  0.09  0.12 0.30 0.70 2.6
## relevance     -0.02 -0.06  0.75  0.11  0.10 0.62 0.38 1.1
## reliability    0.04  0.21  0.43 -0.17  0.10 0.34 0.66 1.9
## relationships  0.18  0.23  0.25  0.41 -0.11 0.50 0.50 3.0
## conflict       0.21  0.37  0.01  0.37 -0.08 0.49 0.51 2.7
## politeness    -0.03  0.51 -0.16  0.13  0.16 0.34 0.66 1.6
## notlying       0.03  0.51 -0.03  0.25  0.03 0.43 0.57 1.5
## unsureresp.    0.49  0.18  0.07  0.11 -0.03 0.44 0.56 1.4
## exclusion      0.00  0.34  0.04  0.43  0.13 0.49 0.51 2.1
## self.percept.  0.27  0.10  0.29  0.19  0.08 0.43 0.57 3.2
## actiongeneral  0.11  0.23  0.57 -0.15  0.05 0.54 0.46 1.6
## actionnow     -0.03  0.11  0.66 -0.08  0.11 0.54 0.46 1.1
## disadvantage   0.14  0.15  0.27  0.37  0.09 0.49 0.51 2.7
## goalinterfer   0.14  0.01  0.48  0.33  0.04 0.51 0.49 2.0
## socialobligat  0.16  0.57  0.24 -0.20 -0.05 0.52 0.48 1.8
## legalobligat   0.01  0.62  0.18 -0.06  0.06 0.51 0.49 1.2
## surprise       0.09  0.14 -0.15  0.07  0.44 0.29 0.71 1.6
## fairness      -0.03  0.59 -0.01  0.15  0.09 0.45 0.55 1.2
## 
##                        PA1  PA4  PA2  PA3  PA5
## SS loadings           5.13 2.87 2.80 2.43 2.37
## Proportion Var        0.17 0.09 0.09 0.08 0.08
## Cumulative Var        0.17 0.26 0.35 0.43 0.50
## Proportion Explained  0.33 0.18 0.18 0.16 0.15
## Cumulative Proportion 0.33 0.51 0.69 0.85 1.00
## 
##  With factor correlations of 
##      PA1  PA4  PA2  PA3  PA5
## PA1 1.00 0.43 0.32 0.45 0.40
## PA4 0.43 1.00 0.35 0.30 0.31
## PA2 0.32 0.35 1.00 0.11 0.37
## PA3 0.45 0.30 0.11 1.00 0.40
## PA5 0.40 0.31 0.37 0.40 1.00
## 
## Mean item complexity =  1.6
## Test of the hypothesis that 5 factors are sufficient.
## 
## df null model =  465  with the objective function =  14.96 0.3 with Chi Square =  48171.62
## df of  the model are 320  and the objective function was  1.04 
##  0.3
## The root mean square of the residuals (RMSR) is  0.02 
## The df corrected root mean square of the residuals is  0.03 
##  0.3
## The harmonic n.obs is  2712 with the empirical chi square  1561.52  with prob <  2.9e-162 
##  0.3The total n.obs was  3233  with Likelihood Chi Square =  3344.19  with prob <  0 
##  0.3
## Tucker Lewis Index of factoring reliability =  0.908
## RMSEA index =  0.054  and the 90 % confidence intervals are  0.052 0.056 0.3
## BIC =  758.22
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy             
##                                                    PA1  PA4  PA2  PA3  PA5
## Correlation of (regression) scores with factors   0.96 0.90 0.92 0.90 0.92
## Multiple R square of scores with factors          0.92 0.81 0.84 0.80 0.85
## Minimum correlation of possible factor scores     0.84 0.62 0.68 0.61 0.70
efa_result$loadings #Loading
## 
## Loadings:
##               PA1    PA4    PA2    PA3    PA5   
## expectation    0.615         0.146              
## valence        0.846                            
## arousal        0.696                       0.159
## sadness        0.864                            
## anger          0.738                            
## fear           0.649         0.234              
## jealousy       0.113                0.665  0.131
## envy                                0.585  0.213
## disgust        0.559  0.212 -0.240              
## regret         0.511                0.164       
## feelinggood                                0.839
## relief                       0.342         0.425
## happiness                                  0.757
## complexity     0.273  0.241                0.116
## relevance                    0.749  0.111  0.104
## reliability           0.209  0.430 -0.166  0.103
## relationships  0.180  0.231  0.255  0.413 -0.106
## conflict       0.209  0.367         0.368       
## politeness            0.514 -0.161  0.128  0.160
## notlying              0.514         0.254       
## unsureresp.    0.490  0.183         0.106       
## exclusion             0.343         0.427  0.127
## self.percept.  0.269         0.291  0.192       
## actiongeneral  0.112  0.230  0.569 -0.154       
## actionnow             0.108  0.660         0.113
## disadvantage   0.136  0.155  0.273  0.368       
## goalinterfer   0.140         0.481  0.327       
## socialobligat  0.164  0.569  0.237 -0.201       
## legalobligat          0.621  0.176              
## surprise              0.145 -0.149         0.438
## fairness              0.593         0.152       
## 
##                  PA1   PA4   PA2   PA3   PA5
## SS loadings    4.442 2.222 2.373 1.846 1.885
## Proportion Var 0.143 0.072 0.077 0.060 0.061
## Cumulative Var 0.143 0.215 0.292 0.351 0.412
efa_result$values #Eigenwerte 
##  [1] 10.287309889  2.034606594  1.405529880  1.184032736  0.688737365
##  [6]  0.454364540  0.255226363  0.219213622  0.178685975  0.140679025
## [11]  0.111199108  0.071742576  0.043582799  0.020260059  0.001666517
## [16] -0.001259149 -0.018677368 -0.028138743 -0.039707322 -0.056046158
## [21] -0.069006061 -0.074374879 -0.079709333 -0.100974372 -0.107374738
## [26] -0.126094385 -0.130844640 -0.140779416 -0.163482184 -0.166187337
## [31] -0.194607337
efa_result$Vaccounted
##                             PA1        PA4        PA2        PA3        PA5
## SS loadings           5.1336471 2.86525151 2.80244609 2.42550898 2.37336277
## Proportion Var        0.1656015 0.09242747 0.09040149 0.07824223 0.07656009
## Cumulative Var        0.1656015 0.25802899 0.34843047 0.42667270 0.50323279
## Proportion Explained  0.3290754 0.18366742 0.17964149 0.15547919 0.15213653
## Cumulative Proportion 0.3290754 0.51274280 0.69238428 0.84786347 1.00000000

Ladungen extrahieren

# 1. Loadings aus dem psych::fa Objekt holen
L <- efa_result$loadings

# 2. In eine "echte" numeric-Matrix umwandeln
loadings_matrix <- as.matrix(unclass(L))

# 3. DataFrame erstellen
loadings_df <- as.data.frame(loadings_matrix)

# 4. Faktoren umbenennen (Beispiel)
colnames(loadings_df) <- c("negative_emotional", "moral_social_norm", 
                           "goal-directed_action", 
                           "social_comparison", "positive_affect")


loadings_df
##               negative_emotional moral_social_norm goal-directed_action
## expectation          0.614581475      -0.070214891          0.146407547
## valence              0.846316413      -0.078042234          0.012642942
## arousal              0.696177715       0.047763357         -0.022149024
## sadness              0.863724502      -0.026800677         -0.029840841
## anger                0.738355218       0.065511669         -0.080937110
## fear                 0.649023412      -0.032157400          0.234194094
## jealousy             0.112835399      -0.024908847         -0.004198201
## envy                 0.059271495       0.021923105         -0.062448094
## disgust              0.558653619       0.212094398         -0.239675693
## regret               0.511145414       0.003533607         -0.055046319
## feelinggood          0.011279759      -0.017621021          0.035208368
## relief               0.078381001       0.046172640          0.342206253
## happiness            0.025188451       0.005822608          0.044482179
## complexity           0.272718463       0.241440938          0.004244231
## relevance           -0.022149824      -0.061734827          0.749122454
## reliability          0.036795405       0.209035787          0.429778233
## relationships        0.179592606       0.231319767          0.254793461
## conflict             0.208978393       0.367224924          0.014284488
## politeness          -0.032548111       0.513960161         -0.161378745
## notlying             0.029150803       0.513591326         -0.026401792
## unsureresp.          0.490212467       0.183403287          0.070055488
## exclusion           -0.003585319       0.343223559          0.042006514
## self.percept.        0.268916019       0.099690070          0.290529168
## actiongeneral        0.112259453       0.230140016          0.569176846
## actionnow           -0.027875426       0.107554904          0.659681800
## disadvantage         0.135708970       0.154548952          0.273459352
## goalinterfer         0.140275477       0.007505231          0.480865785
## socialobligat        0.164189344       0.569240924          0.237401143
## legalobligat         0.007275202       0.620899984          0.175696609
## surprise             0.093017778       0.144627619         -0.148917196
## fairness            -0.032418882       0.593349313         -0.012988576
##               social_comparison positive_affect
## expectation        0.0003769734    -0.016200619
## valence            0.0175734219     0.017083699
## arousal           -0.0864885933     0.158574323
## sadness           -0.0301942541     0.002525188
## anger              0.0570102799    -0.021749648
## fear               0.0830734668    -0.006725755
## jealousy           0.6652675976     0.131309490
## envy               0.5847202872     0.213140980
## disgust            0.0106411327     0.041844033
## regret             0.1642995653     0.066888450
## feelinggood       -0.0029847130     0.838596340
## relief             0.0647995468     0.424980860
## happiness          0.0348268321     0.756823075
## complexity         0.0857495643     0.116101163
## relevance          0.1112436067     0.104287159
## reliability       -0.1655476890     0.102538840
## relationships      0.4134231590    -0.106000235
## conflict           0.3684250153    -0.084082697
## politeness         0.1277817388     0.160290644
## notlying           0.2544743205     0.025277111
## unsureresp.        0.1061132622    -0.032893616
## exclusion          0.4270472791     0.126845947
## self.percept.      0.1916963960     0.081925375
## actiongeneral     -0.1542001109     0.049286608
## actionnow         -0.0811185735     0.113418630
## disadvantage       0.3680618046     0.085423806
## goalinterfer       0.3268455188     0.035157301
## socialobligat     -0.2007773504    -0.048100438
## legalobligat      -0.0626852493     0.060955697
## surprise           0.0692014387     0.438453662
## fairness           0.1522241323     0.087839113